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

簡單聊聊vue2.x的$attrs和$listeners

 更新時(shí)間:2022年03月10日 09:36:25   作者:蘆薈柚子茶  
vue組件之間的通信方式有很多種,props/emit,event bus,vuex,provide/inject等,還有一種通信方式就是$attrs和$listeners,下面這篇文章主要給大家介紹了關(guān)于vue2.x中$attrs和$listeners的相關(guān)資料,需要的朋友可以參考下

$attrs

$attrs 用于多層次組件傳遞參數(shù)(組件標(biāo)簽的attribute,class和style除外),爺爺輩組件向?qū)O子輩組件傳遞參數(shù)(注:參數(shù)不能被父輩prop識(shí)別,一旦被父輩prop識(shí)別且獲取,則孫子輩組件不能獲取到該參數(shù))

寫法如下:(注:v-bind不能用簡寫 :)

<grand-son v-bind="$attrs" />

下面舉個(gè)栗子:

爺爺(GrandFather)向父親(Father)傳遞一個(gè) msg1

向?qū)O子(GrandSon)傳遞一個(gè) msg2,孫子會(huì)一并接收 msg1(然而被父親接走了,所以孫子收不到 msg1)

<!-- GrandFather.vue -->
<template>
  <div>
    GrandFather:
    <father :msg1="msg1" :msg2="msg2" />
  </div>
</template>

<script>
import Father from './Father.vue'
export default {
  components: { Father },
  data() {
    return {
      msg1: 'msg1',
      msg2: 'msg2'
    }
  }
}
</script>
<!-- Father.vue -->
<template>
  <div>
    Father: {{ msg1 }}
    <grand-son v-bind="$attrs" />
  </div>
</template>

<script>
import GrandSon from './GrandSon.vue'
export default {
  components: { GrandSon },
  props: ['msg1']
}
</script>
<!-- GrandSon.vue -->
<template>
  <div>GrandSon: {{ msg1 }}{{ msg2 }}</div>
</template>

<script>
export default {
  props: ['msg1', 'msg2']
}
</script>

界面現(xiàn)實(shí)結(jié)果:

GrandFather:
Father: msg1
GrandSon: msg2

$listeners

$listeners 用于多層次組件傳遞事件監(jiān)聽器,爺爺輩組件向父輩、孫子輩、曾孫子輩……組件傳遞事件(與 $attrs 不同,不存在半路被攔截的情況)

寫法如下:(注:v-on 不能用簡寫 @,雖然不報(bào)錯(cuò),但是也不生效)

<grand-son v-on="$listeners" />

下面繼續(xù)使用 爺爺-> 父親 -> 孫子 的栗子:

爺爺(GrandFather)給父親(Father)綁定一個(gè) click 事件

父親通過點(diǎn)擊 div 觸發(fā) click 事件,同時(shí)向?qū)O子(GrandSon)傳遞 $listeners

<!-- GrandFather.vue -->
<template>
  <div>
    GrandFather:
    <father :msg1="msg1" :msg2="msg2" @click="handleClick" />
  </div>
</template>

<script>
import Father from './Father.vue'
export default {
  components: { Father },
  data() {
    return {
      msg1: 'msg1',
      msg2: 'msg2'
    }
  },
  methods: {
    handleClick() {
      console.log('trriger click')
    }
  }
}
</script>
<!-- Father.vue -->
<template>
  <div>
    <div @click="handleFatherClick">Father: {{ msg1 }}</div>
    <grand-son v-bind="$attrs" v-on="$listeners" />
  </div>
</template>

<script>
import GrandSon from './GrandSon.vue'
export default {
  components: { GrandSon },
  props: ['msg1'],
  methods: {
    handleFatherClick() {
      console.log('father click')
      this.$emit('click')
    }
  }
}
</script>
<!-- GrandSon.vue -->
<template>
  <div @click="handleSonClick">GrandSon: {{ msg1 }}{{ msg2 }}</div>
</template>

<script>
export default {
  props: ['msg1', 'msg2'],
  methods: {
    handleSonClick() {
      console.log('grandson click')
      this.$emit('click')
    }
  }
}
</script>

界面:

GrandFather:
Father: msg1
GrandSon: msg2

點(diǎn)擊 Father: msg1,控制臺(tái)顯示:

father click
trriger click

點(diǎn)擊 GrandSon: msg2,控制臺(tái)顯示:

grandson click
trriger click

總結(jié)

到此這篇關(guān)于vue2.x的$attrs和$listeners的文章就介紹到這了,更多相關(guān)vue2.x $attrs和$listeners內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue2.0 中#$emit,$on的使用詳解

    vue2.0 中#$emit,$on的使用詳解

    這篇文章主要介紹了vue2.0 中#$emit,$on的使用詳解,需要的朋友可以參考下
    2017-06-06
  • Vue分頁組件實(shí)現(xiàn)過程詳解

    Vue分頁組件實(shí)現(xiàn)過程詳解

    Web應(yīng)用程序中資源分頁不僅對性能很有幫助,而且從用戶體驗(yàn)的角度來說也是非常有用的。在這篇文章中,將了解如何使用Vue創(chuàng)建動(dòng)態(tài)和可用的分頁組件
    2022-12-12
  • Vue Element使用icon圖標(biāo)教程詳解(第三方)

    Vue Element使用icon圖標(biāo)教程詳解(第三方)

    element-ui自帶的圖標(biāo)庫不夠全,還是需要需要引入第三方icon。下面小編給大家?guī)砹薞ue Element使用icon圖標(biāo)教程,感興趣的朋友一起看看吧
    2018-02-02
  • vue中el-checkbox全選、反選、多選的實(shí)現(xiàn)

    vue中el-checkbox全選、反選、多選的實(shí)現(xiàn)

    這篇文章主要介紹了vue中el-checkbox全選、反選、多選的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 通過Element ui往頁面上加一個(gè)分頁導(dǎo)航條的方法

    通過Element ui往頁面上加一個(gè)分頁導(dǎo)航條的方法

    這篇文章主要介紹了通過Element ui往頁面上加一個(gè)分頁導(dǎo)航條的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 淺析vue中$nextTick的作用與原理

    淺析vue中$nextTick的作用與原理

    這篇文章主要為大家詳細(xì)介紹一下Vue中$nextTick的作用于原理,這也是面試中常常考到的問題,文中的示例代碼講解詳細(xì),對我們深入了解Vue有一定的幫助,需要的小伙伴可以參考一下
    2023-10-10
  • Vue路由切換頁面不更新問題解決方案

    Vue路由切換頁面不更新問題解決方案

    這篇文章主要介紹了Vue路由切換頁面不更新問題解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • vue+flv.js+SpringBoot+websocket實(shí)現(xiàn)視頻監(jiān)控與回放功能

    vue+flv.js+SpringBoot+websocket實(shí)現(xiàn)視頻監(jiān)控與回放功能

    vue+springboot的項(xiàng)目,需要在頁面展示出??档挠脖P錄像機(jī)連接的攝像頭的實(shí)時(shí)監(jiān)控畫面以及回放功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2022-02-02
  • vue實(shí)現(xiàn)彈窗翻頁多選效果

    vue實(shí)現(xiàn)彈窗翻頁多選效果

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)彈窗翻頁多選效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • vue3如何使用provide實(shí)現(xiàn)狀態(tài)管理詳解

    vue3如何使用provide實(shí)現(xiàn)狀態(tài)管理詳解

    Vue3中有一對新增的api,provide和inject,熟悉Vue2的朋友應(yīng)該明,這篇文章主要給大家介紹了關(guān)于vue3如何使用provide實(shí)現(xiàn)狀態(tài)管理的相關(guān)資料,需要的朋友可以參考下
    2021-10-10

最新評論

沾化县| 玛多县| 栖霞市| 都昌县| 黄浦区| 资溪县| 呼和浩特市| 博湖县| 抚宁县| 芦溪县| 于田县| 阿克苏市| 沅陵县| 石嘴山市| 潮州市| 安国市| 锡林郭勒盟| 巨野县| 白沙| 寿宁县| 囊谦县| 泰顺县| 永善县| 赞皇县| 革吉县| 灵川县| 梧州市| 常州市| 彩票| 万安县| 翁牛特旗| 巫山县| 徐闻县| 乌审旗| 盘山县| 凉城县| 祁阳县| 琼海市| 化州市| 镶黄旗| 山丹县|