欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Vue2.0 事件派發(fā)與接收

 更新時間:2017年09月05日 11:27:26   作者:a5534789  
這篇文章主要介紹了詳解Vue2.0 事件派發(fā)與接收,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

由于vue2.0 移除了1.0中的$dispatch 和$broadcast 這兩個組件之間通信傳遞數(shù)據(jù)的方法 ,官方的給出的最簡單的升級建議是使用集中的事件處理器,而且也明確說明了 一個空的vue實例就可以做到,因為Vue 實例實現(xiàn)了一個事件分發(fā)接口.

請直接看代碼,在初始化web app的時候,給data添加一個 名字為eventhub 的空vue對象

new Vue({
 el: '#app',
 router,
 render: h => h(App),
 data: {
  eventHub: new Vue()
 }
})

好的 這個時候 你就可以一勞永逸了,在任何組件都可以調(diào)用事件發(fā)射 接受的方法了.

如何獲取到這個空的vue對象 eventhub呢.在組件里面直接調(diào)用這個

某一個組件內(nèi)調(diào)用事件觸發(fā)

//通過this.$root.eventHub獲取此對象
//調(diào)用$emit 方法
this.$root.eventHub.$emit('YOUR_EVENT_NAME', yourData)

另一個組件內(nèi)調(diào)用事件接受,當(dāng)然在組件銷毀時接觸綁定,使用$off方法

this.$root.eventHub.$on('YOUR_EVENT_NAME', (yourData)=>{
  handle(yourData)
} )

遇到一個問題 ,考慮特定場景:

跳轉(zhuǎn)路由之前我們調(diào)用了$emit方法,這個方法在A組件里面處理數(shù)據(jù),但是A組件綁定$on事件之前 $emit事件已經(jīng)發(fā)射,所以這會導(dǎo)致一直接受不到消息,看來這個事件綁定有時效性問題,你可以setTimeout來做一下延時,但是這個特別奇怪,那就把數(shù)據(jù)存到store然后等A組件加載完了再去取。。。。

官方文檔請點擊我

record on 12 24

在stackoverflow 發(fā)現(xiàn)一個更加簡潔的方法,因為本質(zhì)上vue是一個js對象,我們想保存一個全局對象,只需要在Vue的prototype上面增加一個屬性即可,本質(zhì)上所有Vue組件都是繼承全局的Vue。只要在初始化Vue對象之前給原生Vue對象prototype增加屬性,那樣所有的組件(因為都是繼承自它的實例)都可以訪問到這個屬性。相關(guān)資料請參考我之前的文章關(guān)于函數(shù)的構(gòu)造函數(shù)和prototype<四>

在初始化Web app 之前 加上這樣一句:

Vue.prototype.$eventHub= Vue.prototype.$eventHub || new Vue()

當(dāng)然我們可以定義其他的全局變量.比如當(dāng)前app的系統(tǒng)配置文件,名字為sysconfig.json,你可以這樣定義

Vue.prototype.$config =Vue.prototype.$config||require('path/sysconfig.json')

這樣我們在組件內(nèi)部 就可以直接調(diào)用$eventHub 和 $config對象了。

比如 在mounted函數(shù)里面直接 console.log($config.yourKey)

record on 1.1.2017

剛才看到了webpack的插件里面有一個definePlugin 它可以幫我們定義全局的常量。

如何使用,很簡單但是更好,我們不用去修改Vue對象:

new webpack.DefinePlugin({
 CONFIG: require('path/sysconfig.json')
});
 

然后我們也可以在全局內(nèi)使用CONFIG對象了。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • nuxt使用vuex存儲及獲取用戶信息踩坑的解決

    nuxt使用vuex存儲及獲取用戶信息踩坑的解決

    這篇文章主要介紹了nuxt使用vuex存儲及獲取用戶信息踩坑的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue + elementUI實現(xiàn)省市縣三級聯(lián)動的方法示例

    vue + elementUI實現(xiàn)省市縣三級聯(lián)動的方法示例

    這篇文章主要介紹了vue + elementUI實現(xiàn)省市縣三級聯(lián)動的方法示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Vue實現(xiàn)6位數(shù)密碼效果

    Vue實現(xiàn)6位數(shù)密碼效果

    這篇文章主要為大家詳細介紹了Vue實現(xiàn)6位數(shù)密碼,優(yōu)化iOS WebView卡頓,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Vue中 Runtime + Compiler 和 Runtime-only 兩種模式含義和區(qū)別詳解

    Vue中 Runtime + Compiler 和 Runtime-o

    這篇文章主要介紹了Vue中 Runtime + Compiler 和 Runtime-only 兩種模式含義和區(qū)別,結(jié)合實例形式詳細分析了Vue中 Runtime + Compiler 和 Runtime-only 兩種模式基本功能、原理、區(qū)別與相關(guān)注意事項,需要的朋友可以參考下
    2023-06-06
  • vue中播放rtsp流的方法實例詳解

    vue中播放rtsp流的方法實例詳解

    最近有個需求是前端在瀏覽器顯示攝像頭傳回的RTSP視頻流,下面這篇文章主要給大家介紹了關(guān)于vue中播放rtsp流的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Vue實戰(zhàn)之掌握自定義指令

    Vue實戰(zhàn)之掌握自定義指令

    作為使用Vue的開發(fā)者,我們對Vue指令一定不陌生,諸如v-model、v-on、v-for、v-if等,同時Vue也為開發(fā)者提供了自定義指令的api,熟練的使用自定義指令可以極大的提高了我們編寫代碼的效率,讓我們可以節(jié)省時間開心的摸魚
    2022-11-11
  • 使用vue-cli搭建SPA項目的詳細過程

    使用vue-cli搭建SPA項目的詳細過程

    vue-cli是vue.js的腳手架,用于自動生成vue.js+webpack的項目模板,本文通過實例代碼給大家介紹vue-cli搭建SPA項目的詳細過程,感興趣的朋友跟隨小編一起看看吧
    2022-09-09
  • vue+iview框架實現(xiàn)左側(cè)動態(tài)菜單功能的示例代碼

    vue+iview框架實現(xiàn)左側(cè)動態(tài)菜單功能的示例代碼

    這篇文章主要介紹了vue+iview框架實現(xiàn)左側(cè)動態(tài)菜單功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • Vue?入口與?initGlobalAPI實例剖析

    Vue?入口與?initGlobalAPI實例剖析

    這篇文章主要為大家介紹了Vue?入口與?initGlobalAPI實例剖析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • 使用 Vue.js 仿百度搜索框的實例代碼

    使用 Vue.js 仿百度搜索框的實例代碼

    本篇文章主要介紹了使用 Vue.js 仿百度搜索框的實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論