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

詳解Vue 非父子組件通信方法(非Vuex)

 更新時間:2017年05月24日 14:26:02   投稿:zx  
本篇文章主要介紹了詳解Vue 非父子組件通信方法(非Vuex),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

一提到兩個非父子組件通信方法,有經(jīng)驗的 coder 肯定會說用 Vuex 啊,我個人建議不要為了用 Vuex 而用 Vuex,除非你的項目很大,耦合度很高,需要大量的儲存一些 data,組件之間通信頻繁。當(dāng)然還是要根據(jù)自己的業(yè)務(wù)場景的來決定,總之還是那句話,不要為了用 Vuex 而用 Vuex!

Vue 官網(wǎng)介紹了非父子組件通信方法:


不過官網(wǎng)說的太簡單了,新手看完估計還是一臉懵逼。還有這個空的 Vue 實例放到哪里合適也值得商榷。

這篇文章的目的就是用一個簡單的例子讓你明白如何用 Bus 🚌 來進行通信:


假設(shè) bb 組件里面有個按鈕,點擊按鈕,把 123 傳遞給 aa 組件

// 根組件(this.$root)
new Vue({
 el: '#app',
 router,
 render: h => h(App),
 data: {
  // 空的實例放到根組件下,所有的子組件都能調(diào)用
  Bus: new Vue()
 }
})

bb 組件內(nèi)調(diào)用事件觸發(fā)↓

<button @click="submit">提交<button>

methods: {
  submit() {
   // 事件名字自定義,用不同的名字區(qū)別事件
   this.$root.Bus.$emit('eventName', 123)
  }
 }

aa 組件內(nèi)調(diào)用事件接收↓

 // 當(dāng)前實例創(chuàng)建完成就監(jiān)聽這個事件
 created(){
  this.$root.Bus.$on('eventName', value => {
   this.print(value)
  })
 },

 methods: {
  print(value) {
   console.log(value)
  }
 },

 // 在組件銷毀時別忘了解除事件綁定
 beforeDestroy() {
   this.$root.Bus.$off('eventName')
 },

這樣就可以了,是不是很簡單?

問題一:如果有多個組件組件需要通信,是不是要在根組件上多建幾個 Bus?
答:不需要的,只要保證事件名 (eventName)不一樣就行了。

問題二:為什么要弄個 Bus?直接 this.$root.$on、this.$root.$emit 不更簡單粗暴?

答:按照文檔上的說法是專門用一個空的 Vue 實例(Bus)來做中央事件總線更加清晰也易于管理。

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

相關(guān)文章

  • VUE3函數(shù)的聲明和使用舉例

    VUE3函數(shù)的聲明和使用舉例

    這篇文章主要給大家介紹了關(guān)于VUE3函數(shù)的聲明和使用的相關(guān)資料, Vue3是一種流行的JavaScript框架,它允許開發(fā)人員構(gòu)建現(xiàn)代化的Web應(yīng)用程序,需要的朋友可以參考下
    2023-07-07
  • 基于axios 的responseType類型的設(shè)置方法

    基于axios 的responseType類型的設(shè)置方法

    今天小編就為大家分享一篇基于axios 的responseType類型的設(shè)置方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • vue定義在computed的變量無法更新問題及解決

    vue定義在computed的變量無法更新問題及解決

    這篇文章主要介紹了vue定義在computed的變量無法更新問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue組件的Prop命名約定詳解

    Vue組件的Prop命名約定詳解

    這篇文章主要為大家介紹了Vue組件的Prop命名約定詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • vue使用element ui自定義手機驗證規(guī)則問題

    vue使用element ui自定義手機驗證規(guī)則問題

    這篇文章主要介紹了vue使用element ui自定義手機驗證規(guī)則問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 基于Vue全局組件與局部組件的區(qū)別說明

    基于Vue全局組件與局部組件的區(qū)別說明

    這篇文章主要介紹了基于Vue全局組件與局部組件的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 你知道vue data為什么是一個函數(shù)

    你知道vue data為什么是一個函數(shù)

    本篇文章從javascript原型鏈來解釋為什么vue中data必須是一個函數(shù),解釋一下這部分的原理內(nèi)容,感興趣的朋友跟隨小編一起看看吧
    2021-11-11
  • vue 自定義icon圖標(biāo)的步驟

    vue 自定義icon圖標(biāo)的步驟

    這篇文章主要介紹了vue 自定義icon的圖標(biāo)的步驟,文中大概給大家分為兩步驟,通過實例圖文相結(jié)合給大家介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • vue+Element實現(xiàn)搜索關(guān)鍵字高亮功能

    vue+Element實現(xiàn)搜索關(guān)鍵字高亮功能

    這篇文章主要為大家詳細介紹了vue+Element實現(xiàn)搜索關(guān)鍵字高亮功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • vue全局使用axios的方法實例詳解

    vue全局使用axios的方法實例詳解

    這篇文章主要介紹了vue全局使用axios的方法實例詳解,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11

最新評論