亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:92日期:2022-12-26 16:47:00

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>

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

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

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

點擊這里可以查看效果

爺孫組件通信

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

即爺爺和父親看成是一個父子組件, 而父親和孫子看成是一個父子組件. 這樣它們之間就可以進行通信了. 通過父親組件合格橋梁, 可以實現(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>

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

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

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

點擊這里查看源代碼

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

標(biāo)簽: Vue
主站蜘蛛池模板: 欧美精品午夜毛片免费看 | 日韩精品一区二区三区四区 | 欧美视频精品在线 | 目韩一区二区三区系列片丶 | 亚洲国产精品第一区二区 | 精品欧美一区二区三区在线 | 高清在线精品一区二区 | 黄色三级网站免费 | 亚洲欧洲日本天天堂在线观看 | 91资源在线播放 | 狠狠做久久深爱婷婷97动漫 | 男人和女人在床做黄的网站 | 中文字幕在线不卡 | v片视频 | 精品一区二区三区免费观看 | 亚洲精品一区二区三区国产 | 精品一区二区三区在线成人 | 亚洲在线久久 | 国产自精品在线 | 午夜寂寞福利 | 亚洲视频中文字幕在线 | 国产91精品一区二区麻豆亚洲 | 99精品视频在线观看免费播放 | 国产成人精品久久一区二区三区 | 亚洲成人午夜影院 | 天天看夜夜 | 欧美精品在线一区 | 国产精品美女久久福利网站 | 奇米网狠狠干 | 女高中生被cao到哭视频 | 欧美一级特黄乱妇高清视频 | 久色福利 | 亚洲 欧美 日韩 在线 中文字幕 | 91人人视频国产香蕉 | 日韩在线视屏 | 一级毛片播放 | 成人免费在线播放 | 理论在线看 | 国产一区二区成人 | 日韩精品视频在线 | 91成人在线免费观看 |