在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML/ bus在兩個(gè)組件之間通信,第一次不觸發(fā)要如何解決?

bus在兩個(gè)組件之間通信,第一次不觸發(fā)要如何解決?

一個(gè)界面中的兩個(gè)公共組件之間需要通信,采用了bus的方法,但是發(fā)現(xiàn)第一次不觸發(fā)

傳遞數(shù)據(jù)的組件(組件一):

clipboard.png

接收數(shù)據(jù)的組件(組件二):

clipboard.png

【操作流程】:在組件一的input中修改信息,@change觸發(fā)bus發(fā)送數(shù)據(jù);在組件二中點(diǎn)擊按鈕,接收bus發(fā)送過(guò)來(lái)的數(shù)據(jù),并將數(shù)據(jù)入庫(kù)。

【問(wèn)題】:在第一次點(diǎn)擊保存按鈕的時(shí)候,沒(méi)有接收到bus發(fā)送過(guò)來(lái)的數(shù)據(jù),這個(gè)要怎么解決?
【描述】:在百度上找了很多方法,說(shuō)是在組件一的beforeDestory中觸發(fā)bus發(fā)送數(shù)據(jù),但是這樣的話,每次都要關(guān)閉這個(gè)界面才能獲取到數(shù)據(jù),完全不符合我的需求。
各位大神,請(qǐng)問(wèn)下要如何解決這個(gè)問(wèn)題?

回答
編輯回答
巷尾

至于首次未觸發(fā),主要還是頁(yè)面未創(chuàng)建的時(shí)候,按鈕已經(jīng)發(fā)出了消息,頁(yè)面當(dāng)然接收不到了
在組件二中采用beforeCreate來(lái)獲取bus的數(shù)據(jù)就可以解決了。代碼如下:

    beforeCreate(){
        Bus.$on('modify', (e) => {
            console.log('e---<',e);
            this.name = e.name;
            this.value = e.value
        })
    },
    beforeDestroy() {
        Bus.$off('modify');
    },
2017年3月27日 15:21