最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中通過使用$attrs實(shí)現(xiàn)組件之間的數(shù)據(jù)傳遞功能

 更新時(shí)間:2019年09月01日 16:20:48   作者:學(xué)霸貓  
組件之間傳遞數(shù)據(jù)的方式有很多種,之所以有這么多種方式,是為了滿足在不同場(chǎng)景不同條件下的使用。這篇文章主要介紹了vue中通過使用$attrs實(shí)現(xiàn)組件之間的數(shù)據(jù)傳遞,需要的朋友可以參考下

組件之間傳遞數(shù)據(jù)的方式有很多種,之所以有這么多種方式,是為了滿足在不同場(chǎng)景不同條件下的使用。

一般有三種方式:

props
vuex
Vue Event Bus

本文介紹的是使用$attrs的方式。

這是$attrs的官網(wǎng)api https://cn.vuejs.org/v2/api/#vm-attrs

這個(gè)api是在2.4版本中添加的,那么為什么要添加這個(gè)特性呢?
看看官網(wǎng)是怎么解釋的

包含了父作用域中不作為 prop 被識(shí)別 (且獲取) 的特性綁定 ( class  和  style  除外)。

當(dāng)一個(gè)組件沒有聲明任何 prop 時(shí),這里會(huì)包含所有父作用域的綁定 ( class  和  style  除外),

并且可以通過  v-bind="$attrs"  傳入內(nèi)部組件——在創(chuàng)建高級(jí)別的組件時(shí)非常有用。

第一次看的話真是不容易看懂,這里是既包含用法又隱晦的說明了為什么使用,還是我來解釋一下吧。

意思就是: $attrs 可以收集父組件中的所有傳過來的屬性除了那些在組件中沒有通過  props 定義的。

引申說明一下,如果組件的嵌套層級(jí)有點(diǎn)深但又不那么深,比如三層。

我們?nèi)绻褂胮rops的話,最里面的組件想要獲取最外層組件的數(shù)據(jù),就要通過中間的組件的props來傳遞,

但是這個(gè)props對(duì)于中間的這個(gè)組件沒啥用處,它就是做了一個(gè)橋梁而已。我們平時(shí)寫代碼時(shí)候其實(shí)經(jīng)常碰到

這種場(chǎng)景,寫起來有時(shí)候覺得挺煩的。所以就有了這個(gè)$attrs來幫助我們,不必在中間組件中寫props就可以讓

最里面的組件拿到最外面組件傳進(jìn)來的數(shù)據(jù)。

那么,具體怎么使用呢?

看看下面的代碼吧,很簡(jiǎn)單就懂了

準(zhǔn)備三個(gè)組件

 

里面的代碼如下

//grandfather
<template>
 <div style="background: blue">
  father in grandfather
  <father :father-age="50" :child-time="`${time}`"></father>
 </div>
</template>
<script>
import father from './father'
export default {
 components: {
  father
 },
 data () {
  return {
   time: new Date().getTime()
  }
 }
}
</script>

//father
<template>
 <div style="background: red">
  child in father
  <div>
   <span>father age:</span>{{fatherAge}}
  </div>
  <child v-bind="$attrs"></child>
 </div>
</template>
<script>
import child from './child'
export default {
 components: {
  child
 },
 props: {
  fatherAge: {
   type: Number,
   default: 0
  }
 }
}
</script>

//child<template>
 <div style="background: green">
  <div>child</div>
  <div>time: {{childTime}}</div>
 </div>
</template>
<script>
export default {
 props: {
  childTime: {
   type: String,
   default: ''
  }
 }
}
</script>

需要從爺爺組件直接傳給子組件的數(shù)據(jù),不要在父組件中的props中聲明。

在子組件上通過v-bind的方式就可以把父組件中未聲明而子組件需要從爺爺組件中獲取的數(shù)據(jù)傳給子組件。

當(dāng)然,子組件props肯定是要聲明的,還是props的用法啦。

總結(jié)

以上所述是小編給大家介紹的vue中通過使用$attrs實(shí)現(xiàn)組件之間的數(shù)據(jù)傳遞功能,希望對(duì)大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會(huì)及時(shí)回復(fù)大家的!

相關(guān)文章

  • Vue+Element實(shí)現(xiàn)表格單元格編輯

    Vue+Element實(shí)現(xiàn)表格單元格編輯

    這篇文章主要為大家詳細(xì)介紹了Vue+Element實(shí)現(xiàn)表格單元格編輯,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vuex中State的使用方法

    Vuex中State的使用方法

    這篇文章主要介紹了Vuex中State的使用方法,Vuex 使用單一狀態(tài)樹,用一個(gè)對(duì)象就包含了全部的應(yīng)用層級(jí)狀態(tài),這也意味著,每個(gè)應(yīng)用將僅僅包含一個(gè) store 實(shí)例,需要的朋友可以參考下
    2023-11-11
  • 使用Vue開發(fā)一個(gè)實(shí)時(shí)性時(shí)間轉(zhuǎn)換指令

    使用Vue開發(fā)一個(gè)實(shí)時(shí)性時(shí)間轉(zhuǎn)換指令

    我們就來實(shí)現(xiàn)這樣一個(gè)Vue自定義指令v-time,將表達(dá)式傳入的時(shí)間戳實(shí)時(shí)轉(zhuǎn)換為相對(duì)時(shí)間。下面小編給大家?guī)砹耸褂肰ue開發(fā)一個(gè)實(shí)時(shí)性時(shí)間轉(zhuǎn)換指令,需要的朋友參考下吧
    2018-01-01
  • vue vantUI實(shí)現(xiàn)文件(圖片、文檔、視頻、音頻)上傳(多文件)

    vue vantUI實(shí)現(xiàn)文件(圖片、文檔、視頻、音頻)上傳(多文件)

    這篇文章主要介紹了vue vantUI實(shí)現(xiàn)文件(圖片、文檔、視頻、音頻)上傳(多文件),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Vue異步組件使用詳解

    Vue異步組件使用詳解

    這篇文章主要為大家詳細(xì)介紹了Vue異步組件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • vue中axios的封裝問題(簡(jiǎn)易版攔截,get,post)

    vue中axios的封裝問題(簡(jiǎn)易版攔截,get,post)

    這篇文章主要介紹了vue中axios的封裝問題(簡(jiǎn)易版攔截,get,post),需要的朋友可以參考下
    2018-06-06
  • vue3父子同信的雙向數(shù)據(jù)的項(xiàng)目實(shí)現(xiàn)

    vue3父子同信的雙向數(shù)據(jù)的項(xiàng)目實(shí)現(xiàn)

    我們知道的是,父?jìng)髯拥耐ㄐ?,和子傳父的通信,那如何?shí)現(xiàn)父子相互通信的呢,本文就來詳細(xì)的介紹一下,感興趣的可以了解一下
    2023-08-08
  • 基于Vue uniapp實(shí)現(xiàn)貪吃蛇游戲

    基于Vue uniapp實(shí)現(xiàn)貪吃蛇游戲

    貪吃蛇游戲想必是很多70、80后的回憶,一直到現(xiàn)在也深受大家的喜歡。本文將利用Vue+uniapp實(shí)現(xiàn)這一經(jīng)典的游戲,感興趣的可以了解一下
    2022-04-04
  • vue實(shí)現(xiàn)點(diǎn)擊按鈕倒計(jì)時(shí)

    vue實(shí)現(xiàn)點(diǎn)擊按鈕倒計(jì)時(shí)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)點(diǎn)擊按鈕倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Vue中的?watch監(jiān)聽屬性詳情

    Vue中的?watch監(jiān)聽屬性詳情

    這篇文章主要介紹了Vue中的?watch監(jiān)聽屬性詳情,mputed計(jì)算屬性用來監(jiān)聽多個(gè)數(shù)據(jù);watch?監(jiān)聽單個(gè)數(shù)據(jù);本文將具體介紹的是?watch監(jiān)聽屬性,感興趣的小伙伴可以參考一下文章的具體內(nèi)容,希望對(duì)你有所幫助
    2021-12-12

最新評(píng)論

绥棱县| 芮城县| 哈密市| 临泉县| 于田县| 松溪县| 德阳市| 襄汾县| 鄢陵县| 元氏县| 长岭县| 肥东县| 阳信县| 普兰县| 黄浦区| 龙江县| 根河市| 四子王旗| 团风县| 棋牌| 延寿县| 巴彦淖尔市| 天津市| 界首市| 故城县| 怀宁县| 高阳县| 奇台县| 鹿泉市| 旬邑县| 乾安县| 大名县| 裕民县| 洮南市| 阿拉尔市| 雷波县| 水富县| 伊宁市| 连州市| 开平市| 突泉县|