JS前端攻堅Eventbus實現(xiàn)更新示例詳解
引言
最近復(fù)盤了一下公司的項目,之前一直沒有做過相關(guān)的Eventbus的案例實現(xiàn),這篇文章大概簡要的介紹一下各個部分是如何實現(xiàn)的,實現(xiàn)的方法比較簡單,主要分為三個步驟,分別是全局掛載,注冊,以及注冊事件的觸發(fā)。
全局注冊
在newVue的時候需要對我們的eventbus進(jìn)行掛載,掛載方式如下,newvue中包含了需要用到的方法,eventbus的注冊需要在beforeCreate鉤子中進(jìn)行實例化,在這里我們的對eventbus在vue的原型上進(jìn)行綁定,我們將this傳入到Vue.prototype.eventBus上,那么eventbus的注冊就已經(jīng)是完成了。
new Vue({ router, store, i18n, render: h => h(App), beforeCreate() { Vue.prototype.eventBus = this; }, }).$mount('#app');
注冊Ebus事件
EventBus的出現(xiàn)本身就是為了解決不同組件之間的通信問題,所以我們的注冊事件和觸發(fā)事件需要在不同的地方,如果是普通的父子組件之間的通信的話就沒有必要用到Ebus的功能了
我們在flow頁面對flow-refresh-id
的事件進(jìn)行注冊,在這里可以看出筆者注冊的是動態(tài)的一個事件,通過動態(tài)添加事件的方法可以區(qū)分出不同id之間調(diào)用相同事件的準(zhǔn)確性,一次注冊寫法可以注冊出多個監(jiān)聽事件,這里注冊的是一個創(chuàng)建節(jié)點的事件,具體的功能這里就不做講解了。
//flow.vue let vm = this vm.eventBus.$on(`flow-refresh-${vm.obj.id}`, (flowNewNodeData) => { vm.createNewNode(flowNewNodeData); });
觸發(fā)Ebus事件
在flow.vue頁面注冊好事件之后我們就可以在其他頁面調(diào)用注冊的事件了,通過vm.eventBus.$emit
的方法在dataD.vue頁面來觸發(fā)已經(jīng)注冊好的事件。
//dataD.vue let vm = this vm.eventBus.$emit( `flow-refresh-${this.menuActive.businessId}`, vm.flowNewNodeData );
本文只是簡單的記錄一下實現(xiàn)Ebus的一整個實現(xiàn)過程,從全局注冊Ebus插件,再到頁面注冊監(jiān)聽事件,另外一個頁面觸發(fā)其他頁面注冊的實現(xiàn)。
以上就是JS前端攻堅Eventbus實現(xiàn)更新示例詳解的詳細(xì)內(nèi)容,更多關(guān)于JS前端Eventbus更新的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何利用js根據(jù)坐標(biāo)判斷構(gòu)成單個多邊形是否合法
這篇文章主要給大家介紹了關(guān)于如何利用js根據(jù)坐標(biāo)判斷構(gòu)成單個多邊形是否合法的相關(guān)資料,文章通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2022-01-01TensorFlow.js機(jī)器學(xué)習(xí)預(yù)測鳶尾花種類
TensorFlow.js是一個開源的基于硬件加速的JavaScript庫,用于訓(xùn)練和部署機(jī)器學(xué)習(xí)模型。本教程將會帶大家簡單了解和使用TensorFlow.js框架實現(xiàn)預(yù)測鳶尾花種類2022-11-11微信小程序?qū)崿F(xiàn)3D輪播圖效果(非swiper組件)
這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)3D輪播圖效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-09-09Some tips of wmi scripting in jscript (1)
Some tips of wmi scripting in jscript (1)...2007-04-04webpack中的filename 和 chunkFilename 的區(qū)別實例解析
filename 指列在 entry 中,打包后輸出的文件的名稱,chunkFilename 指未列在 entry 中,卻又需要被打包出來的文件的名稱,這篇文章主要介紹了webpack中的filename 和 chunkFilename 的區(qū)別實例解析,需要的朋友可以參考下2023-11-11Bootstrap Scrollspy源碼學(xué)習(xí)
這篇文章主要介紹了Bootstrap Scrollspy源碼學(xué)習(xí),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03微信小程序onShareTimeline()實現(xiàn)分享朋友圈
這篇文章主要給大家介紹了關(guān)于微信小程序onShareTimeline()實現(xiàn)分享朋友圈的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01