最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue組件通信之Bus的具體使用

 更新時(shí)間:2017年12月28日 10:56:07   作者:Damer  
本篇文章主要介紹了Vue組件通信之Bus的具體使用,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

關(guān)于組件通信我相信小伙伴們肯定也都很熟悉,就不多說了,對組件通信還不熟悉的小伙伴移步這里

在vue2.0中 $dispatch 和 $broadcast 已經(jīng)被棄用。官方文檔中給出的解釋是:

因?yàn)榛诮M件樹結(jié)構(gòu)的事件流方式實(shí)在是讓人難以理解,并且在組件結(jié)構(gòu)擴(kuò)展的過程中會變得越來越脆弱。這種事件方式確實(shí)不太好,我們也不希望在以后讓開發(fā)者們太痛苦。并且$dispatch 和 $broadcast 也沒有解決兄弟組件間的通信問題。

官方推薦的狀態(tài)管理方案是 Vuex。不過如果項(xiàng)目不是很大,狀態(tài)管理也沒有很復(fù)雜的話,使用 Vuex 有種殺雞用牛刀的感覺,當(dāng)然,這也是要根據(jù)自己的需求來的,只是建議。

vue官方文檔中有這樣一個(gè)定義:非父子組件的通信,內(nèi)容很少,如下:


其實(shí)關(guān)于這個(gè)非父子組件通信的demo還是有的,它藏在了$dispatch 和 $broadcast的遷移文檔中,有興趣的小伙伴可以點(diǎn)擊進(jìn)去查看。文檔中的建議就是:

對于$dispatch 和 $broadcast最簡單的升級方式就是:通過使用事件中心,允許組件自由交流,無論組件處于組件樹的哪一層。由于 Vue 實(shí)例實(shí)現(xiàn)了一個(gè)事件分發(fā)接口,你可以通過實(shí)例化一個(gè)空的 Vue 實(shí)例來實(shí)現(xiàn)這個(gè)目的。
這個(gè)集中式的事件中間件就是 Bus。我習(xí)慣將bus定義到全局:

app.js

var eventBus = {
 install(Vue,options) {
  Vue.prototype.$bus = vue
 }
};
Vue.use(eventBus);

然后在組件中,可以使用$emit, $on, $off 分別來分發(fā)、監(jiān)聽、取消監(jiān)聽事件:

分發(fā)事件的組件

// ...
methods: {
 todo: function () {
 this.$bus.$emit('todoSth', params); //params是傳遞的參數(shù)
 //...
 }
}

監(jiān)聽的組件

// ...
created() {
 this.$bus.$on('todoSth', (params) => { //獲取傳遞的參數(shù)并進(jìn)行操作
  //todo something
 })
},
// 最好在組件銷毀前
// 清除事件監(jiān)聽
beforeDestroy () {
 this.$bus.$off('todoSth');
},

如果需要監(jiān)聽多個(gè)組件,只需要更改 bus 的 eventName:

// ...
created() {
 this.$bus.$on('firstTodo', this.firstTodo);
 this.$bus.$on('secondTodo', this.secondTodo);
},
// 清除事件監(jiān)聽
beforeDestroy () {
 this.$bus.$off('firstTodo', this.firstTodo);
 this.$bus.$off('secondTodo', this.secondTodo);
},

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

相關(guān)文章

  • 解決vue點(diǎn)擊控制單個(gè)樣式的問題

    解決vue點(diǎn)擊控制單個(gè)樣式的問題

    今天小編就為大家分享一篇解決vue點(diǎn)擊控制單個(gè)樣式的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue-cli解決IE瀏覽器sockjs-client錯(cuò)誤方法

    vue-cli解決IE瀏覽器sockjs-client錯(cuò)誤方法

    這篇文章主要為大家介紹了vue-cli解決IE瀏覽器sockjs-client錯(cuò)誤方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-08-08
  • vue forEach循環(huán)數(shù)組拿到自己想要的數(shù)據(jù)方法

    vue forEach循環(huán)數(shù)組拿到自己想要的數(shù)據(jù)方法

    今天小編就為大家分享一篇vue forEach循環(huán)數(shù)組拿到自己想要的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • 解決antd的Form組件setFieldsValue的警告問題

    解決antd的Form組件setFieldsValue的警告問題

    這篇文章主要介紹了解決antd的Form組件setFieldsValue的警告問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 在Vue框架中配置Mock服務(wù)器的方法

    在Vue框架中配置Mock服務(wù)器的方法

    在前端開發(fā)中,如果需要模擬后端數(shù)據(jù),而又不想開發(fā)一個(gè)后端服務(wù)器, 則可以借助mock.js配置一個(gè)后端服務(wù)器來返回前端需要的數(shù)據(jù),本文將會分別介紹在Quasar項(xiàng)目和Vite項(xiàng)目中Mock服務(wù)器的配置方法
    2022-12-12
  • 解決vue2.0路由跳轉(zhuǎn)未匹配相應(yīng)用路由避免出現(xiàn)空白頁面的問題

    解決vue2.0路由跳轉(zhuǎn)未匹配相應(yīng)用路由避免出現(xiàn)空白頁面的問題

    今天小編就為大家分享一篇解決vue2.0路由跳轉(zhuǎn)未匹配相應(yīng)用路由避免出現(xiàn)空白頁面的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vuei18n 在數(shù)組中的使用方式

    Vuei18n 在數(shù)組中的使用方式

    這篇文章主要介紹了Vuei18n 在數(shù)組中的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue computed實(shí)現(xiàn)原理深入講解

    Vue computed實(shí)現(xiàn)原理深入講解

    computed又被稱作計(jì)算屬性,用于動(dòng)態(tài)的根據(jù)某個(gè)值或某些值的變化,來產(chǎn)生對應(yīng)的變化,computed具有緩存性,當(dāng)無關(guān)值變化時(shí),不會引起computed聲明值的變化。產(chǎn)生一個(gè)新的變量并掛載到vue實(shí)例上去
    2022-10-10
  • vue項(xiàng)目如何使用three.js實(shí)現(xiàn)vr360度全景圖片預(yù)覽

    vue項(xiàng)目如何使用three.js實(shí)現(xiàn)vr360度全景圖片預(yù)覽

    這篇文章主要介紹了vue項(xiàng)目如何使用three.js實(shí)現(xiàn)vr360度全景圖片預(yù)覽,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue3+vite使用jsx和tsx詳情

    vue3+vite使用jsx和tsx詳情

    這篇文章主要介紹了vue3+vite使用jsx和tsx詳情,文章通過安裝@vitejs/plugin-vue-jsx展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05

最新評論

扎兰屯市| 阜阳市| 盱眙县| 锦州市| 青河县| 梅州市| 锦州市| 大宁县| 巴彦县| 安达市| 安福县| 峡江县| 临海市| 东台市| 天津市| 平利县| 浮山县| 克拉玛依市| 清徐县| 大埔区| 儋州市| 嵩明县| 高青县| 江西省| 南开区| 襄樊市| 云梦县| 桂东县| 章丘市| 武安市| 通山县| 孝感市| 石家庄市| 新营市| 柯坪县| 大理市| 道孚县| 东海县| 潼南县| 宁陕县| 虹口区|