vue里的bus的寫法

由于剛?cè)雟ue不久,并且經(jīng)驗(yàn)較淺。所以在使用官方介紹的bus總線的時(shí)候出現(xiàn)了一些很簡(jiǎn)單的低級(jí)的疑惑。

我的需求是:

通過(guò)一個(gè)組件的id,來(lái)獲取下面和他id相同組件的內(nèi)容

image.png

(上圖是官方的說(shuō)法)

我的疑惑是:按照官方說(shuō)的,在不使用vuex的情況下,使用一個(gè)全局變量來(lái)發(fā)射和接受需要交互的數(shù)據(jù)。

那么這個(gè)bus應(yīng)該怎么寫呢?這個(gè)問(wèn)題也困惑了我很久,官方也沒(méi)有找到更加詳細(xì)的說(shuō)法(也可能是我沒(méi)有找到吧)

經(jīng)過(guò)一個(gè)前輩H的指導(dǎo),我終于正確的寫了出來(lái)。

直接上代碼:

先建立一個(gè)單獨(dú)的bus的文件,保存在組建之外。

import Vue from 'vue'

const bus=newVue()

export default bus

然后在需要的組建里面按照正確的路勁來(lái)import就好了。

例如這樣:

在需要傳出去data的組建里,先import bus from 'yourpath',然后開(kāi)始使用bus傳數(shù)據(jù)。

bus.$emit('typeId',label.id)

在需要接收的組建里,先import bus from 'yourpath',然后使用bus接受。

let_this=this

bus.$on('typeId',function(value) {

_this.proper=_this.property.filter(v=>v.functionTypeId ===value) //這里是我的需求代碼,你可以寫上你自己的

})

值得注意的是這里的this,bus函數(shù)里面的this不再是vm的this,所以如果你要在bus里面操作vm的內(nèi)容的話,需要在bus之外先存一下vm的this。然后才能正確使用。

就是這樣,以上です。毎日少しずつ進(jìn)んでください。

by the way 感謝@Helen幫我理清楚頭緒。非常感謝!

最后編輯于
?著作權(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)容

  • 由于剛?cè)雟ue不久,并且經(jīng)驗(yàn)較淺。所以在使用官方介紹的bus總線的時(shí)候出現(xiàn)了一些很簡(jiǎn)單的低級(jí)的疑惑。 我的需求是 ...
    愛(ài)蔥夢(mèng)夢(mèng)閱讀 1,156評(píng)論 1 1
  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對(duì)于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,081評(píng)論 0 29
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,981評(píng)論 19 139
  • 兩年前的時(shí)候,曾經(jīng)有一次做領(lǐng)航車之道家用轎車連鎖門店的推廣宣傳。當(dāng)時(shí)計(jì)劃在門店附近的小區(qū)投放一輪單元門的廣告...
    左客閱讀 688評(píng)論 0 4
  • 我們看過(guò)太多勵(lì)志公眾號(hào)說(shuō)三流的學(xué)歷如何獲得一流的工作機(jī)會(huì),或是三流的資歷如何獲得一流的人生經(jīng)驗(yàn),或是三流的原生家庭...
    Runningapple閱讀 1,035評(píng)論 0 0