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

vue中組件通信詳解(父子組件, 爺孫組件, 兄弟組件)

 更新時間:2020年07月27日 14:34:00   作者:CSDN認(rèn)證用戶  
這篇文章主要介紹了vue中組件通信詳解(父子組件, 爺孫組件, 兄弟組件),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

vue中我們常常用到組件. 那么組件總體可以分為如下的幾種關(guān)系.

父子組件, 爺孫組件, 兄弟組件. 這幾種組件之間是如何通信的呢?

父子組件通信

根據(jù)vue中的文檔可知, 組件的props屬性用于接收父組件傳遞的信息. 而子組件想要向父組件傳遞信息, 可以使用$emit事件.

我們定義兩個組件, 一個為父組件名為father, 另外一個為子組件child. 子組件通過props屬性接收父組件傳遞的值, 這個值為fname, 是父組件的名字. 點擊子組件的按鈕, 觸發(fā)toFather事件, 向父組件傳遞消息. 父組件做出相應(yīng)的反應(yīng).

將父組件和子組件放入名為app的vue實例中

Vue.component('child', {
 props: ['fname'],
 template: `
  <div class="child">
   這是兒子, 我爸爸是{{fname}}
   <button @click="$emit('toFather')">點我通知爸爸</button>
  </div>
 `
})

Vue.component('father', {
 data() {
  return {
   info: '無消息'
  }
 },
 template: `
  <div class="father">
   這是父親, {{info}}
   <child fname="father" @toFather="getSonMsg"></child>
  </div>
 `,
 methods: {
  getSonMsg() {
   this.info = '我收到兒子傳來的消息了'
  }
 }
})
new Vue({
 el: '#app',
})

注意上面的組件定義順序不能換

讓后我們在html文件中寫入即可

<div id="app">
  <father></father>
 </div>

點擊按鈕后發(fā)現(xiàn)我們的父組件發(fā)生了變化

點擊這里可以查看效果

爺孫組件通信

因為vue只是說明了父子組件如何通信, 那么爺孫組件是沒有辦法直接通信的. 但是它們可以分解為兩個父子組件通信.

即爺爺和父親看成是一個父子組件, 而父親和孫子看成是一個父子組件. 這樣它們之間就可以進(jìn)行通信了. 通過父親組件合格橋梁, 可以實現(xiàn)爺孫的通信. (注意: 爺孫組件是無法直接通信的)

兄弟組件通信

兄弟組件通信即組件之間通信. 這就要用到觀察者模式了. 因為vue實例的原型全部來自Vue.prototype. 那么我們就可以了將事件中心綁定到Vue.prototype的某個屬性上, 暫且叫它為bus吧.

let bus = new Vue()

Vue.prototype.bus = bus

我們再定義兩個組件, up組件和down組件, 當(dāng)點擊down組件中的按鈕時, 會給up組件傳遞信息.

Vue.component('up', {
 data() {
  return {
   msg: '未傳遞消息'
  }
 },
 template: `
  <div class="up">
   <p>這是up組件, 下一行為down傳遞的消息</p>
   <p>{{msg}}</p>
  </div>
 `,
 mounted() {
  this.bus.$on('send', (msg)=> {
   this.msg = (msg)
  })
 }
})

Vue.component('down', {
 template: `
  <div class="down">
   <p>這是down</p>
   <button @click="toUp">點擊我向up組件傳遞消息</button>
  </div>
 `,
 methods: {
  toUp() {
   this.bus.$emit('send', 'down來消息了')
  }
 }
})
new Vue({
 el: '#app',
})

并且將兩個組件放入名為app的實例中

<div id="app">
  <up></up>
  <down></down>
 </div>

按鈕被點擊后, up組件會接收到消息

點擊這里查看源代碼

以上這篇vue中組件通信詳解(父子組件, 爺孫組件, 兄弟組件)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue.js圖片預(yù)覽插件使用詳解

    Vue.js圖片預(yù)覽插件使用詳解

    Vue是一套用于構(gòu)建用戶界面的漸進(jìn)式框架。這篇文章主要介紹了Vue.js圖片預(yù)覽插件的相關(guān)知識,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • vue3錨點定位兩種實現(xiàn)方式示例

    vue3錨點定位兩種實現(xiàn)方式示例

    這篇文章主要給大家介紹了關(guān)于vue3錨點定位兩種實現(xiàn)的相關(guān)資料,說到錨點定位,很多人第一時間會想到 a標(biāo)簽,但是a標(biāo)簽實現(xiàn)的錨點定位并不是那么的完美,需要的朋友可以參考下
    2023-07-07
  • Vue3+Vite實現(xiàn)一個Markdown編輯器組件

    Vue3+Vite實現(xiàn)一個Markdown編輯器組件

    在現(xiàn)代前端開發(fā)中,Markdown 編輯器廣泛應(yīng)用于博客,文檔,Wiki,代碼注釋等場景,本文將使用 Vue 3 構(gòu)建一個簡單的 Markdown 編輯器組件,感興趣的小伙伴可以了解下
    2025-04-04
  • vue中組件樣式?jīng)_突的問題解決

    vue中組件樣式?jīng)_突的問題解決

    默認(rèn)情況下,寫在.vue組件中的樣式會全局生效,因此很容易造成組件之間的樣式?jīng)_突問題,本文就來介紹一下如何解決此問題,感興趣的可以了解一下
    2023-12-12
  • 學(xué)習(xí)vue.js中class與style綁定

    學(xué)習(xí)vue.js中class與style綁定

    這篇文章主要和大家一起學(xué)習(xí)vue.js中class與style綁定操作,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • vue-devtools快速安裝過程

    vue-devtools快速安裝過程

    vue-devtools是一款基于chrome游覽器的插件,用于調(diào)試vue應(yīng)用,這可以極大地提高我們的調(diào)試效率,這篇文章主要介紹了vue-devtools的安裝,需要的朋友可以參考下
    2023-08-08
  • Vue中nprogress頁面加載進(jìn)度條的方法實現(xiàn)

    Vue中nprogress頁面加載進(jìn)度條的方法實現(xiàn)

    這篇文章主要介紹了Vue中nprogress頁面加載進(jìn)度條的方法實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • vue如何使用AIlabel標(biāo)注組件

    vue如何使用AIlabel標(biāo)注組件

    這篇文章主要介紹了vue如何使用AIlabel標(biāo)注組件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vuex的幾個屬性及其使用傳參方式

    vuex的幾個屬性及其使用傳參方式

    這篇文章主要介紹了vuex的幾個屬性及其使用傳參,本文結(jié)合實例代碼給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • Vue實現(xiàn)簡易購物車案例

    Vue實現(xiàn)簡易購物車案例

    這篇文章主要為大家詳細(xì)介紹了Vue實現(xiàn)簡易購物車案例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06

最新評論

红桥区| 博野县| 泰州市| 公主岭市| 兴仁县| 聂拉木县| 平和县| 民权县| 汾阳市| 东乡| 塔城市| 元谋县| 华安县| 甘孜| 师宗县| 巴林左旗| 东乡族自治县| 海南省| 山阳县| 林州市| 安平县| 揭西县| 同江市| 怀柔区| 桃江县| 丁青县| 瑞丽市| 兖州市| 龙陵县| 平舆县| 论坛| 尤溪县| 图们市| 泸西县| 南和县| 怀宁县| 平顺县| 宁津县| 邳州市| 拜城县| 民县|