vue父子組件通信

1.父組件傳遞數(shù)據(jù)給子組件

父組件數(shù)據(jù)如何傳遞給子組件呢?可以通過props屬性來實(shí)現(xiàn)

父組件:

//這里必須要用 - 代替駝峰data(){return{

msg: [1,2,3]

};

}

子組件通過props來接收數(shù)據(jù):

方式1:props: [

'childMsg']

方式2 :props: {? ? childMsg: Array

//這樣可以指定傳入的類型,如果類型不對(duì),會(huì)警告}

方式3:props: {? ? childMsg: {? ? ? ? type: Array,

default: [0,0,0]//這樣可以指定默認(rèn)的值}

}

2.子組件與父組件通信

子組件:

methods: {

testClick() {this.$emit('test','123');//主動(dòng)觸發(fā)test方法,'123'為向父組件傳遞的數(shù)據(jù)}

}

父組件:

? ? ? //監(jiān)聽子組件觸發(fā)的test事件,然后調(diào)用change方法
methods: {

change(msg) {this.msg =msg;? // msg: 123

}

}

3.非父子組件通信

如果2個(gè)組件不是父子組件那么如何通信呢?這時(shí)可以通過eventHub來實(shí)現(xiàn)通信.

所謂eventHub就是創(chuàng)建一個(gè)事件中心,相當(dāng)于中轉(zhuǎn)站,可以用它來傳遞事件和接收事件.

let Hub=newVue();//創(chuàng)建事件中心

組件1觸發(fā):

methods: {

eve() {

Hub.$emit('change','hehe');//Hub觸發(fā)事件}}

組件2接收:

created() {

Hub.$on('change', () => {//Hub接收事件this.msg = 'hehe';

});

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1.子組件獲取父組件data 子組件為bbb父組件為aaabbb想要獲取aaa里的msg,msg1 父組件調(diào)用子組...
    玄月府的小妖在debug閱讀 858評(píng)論 0 4
  • Vue父子組件通信 Web中的組件其實(shí)就是頁面組成的一部分。 那組件之間的通信該怎么辦?這是個(gè)重點(diǎn)(必須掌握),同...
    程序員之路閱讀 663評(píng)論 0 2
  • 在使用vue的過程中,如果需要進(jìn)行父子組件間的通信,通過查閱官方文檔我們可以了解到只需要在子組件要顯式地用 pro...
    fisher_zh閱讀 472評(píng)論 0 1
  • 一、父?jìng)髯?、可以在父組件上使用自定義屬性綁定數(shù)據(jù);2、在子組件中需要顯示的用props聲明自定義屬性名,然后就可...
    LIsPeri閱讀 240評(píng)論 0 1
  • 往年過春節(jié),我總要回西都。帶上一個(gè)包。包是當(dāng)時(shí)尚未成為一個(gè)父親的J陪我在城隍廟的一條街道買的。容量足夠大,我去時(shí)只...
    老晁閱讀 304評(píng)論 0 0