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

Vue2中如何使用全局事件總線實現(xiàn)任意組件間通信

 更新時間:2022年12月28日 11:39:09   作者:卡卡西最近怎么樣  
全局事件總線就是一種組件間通信的方式,適用于任意組件間通信,下面這篇文章主要給大家介紹了關于Vue2中如何使用全局事件總線實現(xiàn)任意組件間通信的相關資料,需要的朋友可以參考下

前言: 

vue 中組件間通信的方式有很多 ------ 父傳子propos,全局事件總線,消息訂閱,vuex......等等,這篇文章帶大家學習一下通過全局事件總線來實現(xiàn)任意組件間的通信。

一:什么是全局事件總線 

全局事件總線 其實就是一個中間人,組件與組件之間的通信需要借助于這個中間人,在一個組件中向其綁定自定義事件,然后在另一個組件觸發(fā)向全局事件總線中綁定的這個自定義事件并傳遞值,進而實現(xiàn)通信。我們可以通過下面的一個圖來粗略解釋什么是全局事件總線

組件C向組件A傳遞數(shù)據(jù):
  • 首先組件A向全局事件總線綁定另一個自定義事件,并定義了當這個事件do被觸發(fā)時要執(zhí)行的回調(diào)函數(shù)
  • 然后由組件C去觸發(fā)全局事件總線中的自定義事件do,并向其回調(diào)中傳遞數(shù)據(jù)
  • 這樣就實現(xiàn)了組件C去觸發(fā)事件并傳遞數(shù)據(jù),組件A去定義事件并接受數(shù)據(jù)

二:全局事件總線怎么創(chuàng)建 

上一版塊我們知道了全局事件總線就是一個處于任何組件都訪問得到的中間媒介,既然要讓所有組件都訪問得到,那我們就要轉(zhuǎn)換思路,即讓 vc 或者 vm 訪問得到:

在 vue 文件的 main.js 入口函數(shù)中的 beforeCreate 鉤子中創(chuàng)建:

$bus 就是我們的全局事件總線,其定義并賦值后就是 vm,可以訪問 vue 原型對中的所有方法,這就包含了綁定的方法 $on,觸發(fā)的方法 $emit,解綁的方法 $off

new Vue({
  el:'#app',
  render: h => h(App),
  //定義全局事件總線 $bus
  beforeCreate:function(){
      Vue.prototype.$bus=this;
  }
})

三:綁定自定義事件

創(chuàng)建過全局事件總線后,就可以開始綁定自定義事件了,使用 $on 綁定自定義事件,綁定要寫在 mounted 鉤子中,后面為其觸發(fā)時執(zhí)行的回調(diào)。

//A組件
export default {
   name:'componentA',
   data() {
    return {}
   },
   mounted(){
      this.$bus.$on('do',(data)=>{    //為全局事件總線綁定自定義事件do
         console.log('我收到了B組件傳來的姓名:',data);
      })
   }
}

四:觸發(fā)自定義事件

綁定過后就可以在另一個組件中觸發(fā)了,觸發(fā)使用的是 $emit,觸發(fā)并將后面的值傳給自定義事件被觸發(fā)時執(zhí)行的回調(diào)

//組件B
export default {
    name:'componentB',
    data() {
        return {
            name:'張三'
        }
    },
    methods:{
        get:function(){  //在該組件的模板中添加一個按鈕點擊執(zhí)行該函數(shù) get
            this.$bus.$emit('do',this.name)   //觸發(fā)自定義事件do
        },
  }
}

 成功實現(xiàn)任意組件間傳遞數(shù)據(jù)

五:解綁自定義事件

vue 實例總將被銷毀,那么我們就要在實例銷毀前解綁自定義事件,這就要和綁定自定義事件同級書寫,即寫在 beforeDestroy 鉤子中,使用 $off 解綁

//A組件
export default {
   name:'componentA',
   data() {
    return {}
   },
   mounted(){
      this.$bus.$on('do',(data)=>{    //為全局事件總線綁定自定義事件do
         console.log('我收到了B組件傳來的姓名:',data);
      })
   },
 
   beforeDestroy(){
        this.$bus.$off('do')  //解綁自定義事件do
   }
}

總結(jié)

到此這篇關于Vue2中如何使用全局事件總線實現(xiàn)任意組件間通信的文章就介紹到這了,更多相關Vue2任意組件間通信內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Vue實現(xiàn)美團app的影院推薦選座功能【推薦】

    Vue實現(xiàn)美團app的影院推薦選座功能【推薦】

    大家都經(jīng)常使用美團app買電影票,很多朋友不知道她的功能是怎么實現(xiàn)的,作為我程序員一枚對它的算法很好奇,今天小編就把基于Vue實現(xiàn)美團app的影院推薦選座功能分享到腳本之家平臺,感興趣的朋友一起看看吧
    2018-08-08
  • vue的組件通訊方法總結(jié)大全

    vue的組件通訊方法總結(jié)大全

    這篇文章主要為大家介紹了非常全面vue的組件通訊方法總結(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • Element-UI組件實現(xiàn)面包屑導航欄的示例代碼

    Element-UI組件實現(xiàn)面包屑導航欄的示例代碼

    面包屑導航欄是一種用戶界面組件,用于展示用戶在網(wǎng)站或應用中的路徑,它包括了從主頁到當前頁面的鏈接序列,有助于用戶快速了解和導航至上級頁面,本文就來介紹一下Element-UI組件實現(xiàn)面包屑導航欄的示例代碼,感興趣的可以了解一下
    2024-09-09
  • Vue腳手架搭建及創(chuàng)建Vue項目流程的詳細教程

    Vue腳手架搭建及創(chuàng)建Vue項目流程的詳細教程

    Vue腳手架指的是vue-cli,它是一個快速構(gòu)建**單頁面應用程序(SPA)**環(huán)境配置的工具,cli是(command-line-interfac)命令行界面,下面這篇文章主要給大家介紹了關于Vue腳手架搭建及創(chuàng)建Vue項目流程的相關資料,需要的朋友可以參考下
    2022-09-09
  • Vue中使用eslint和editorconfig方式

    Vue中使用eslint和editorconfig方式

    這篇文章主要介紹了Vue中使用eslint和editorconfig方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 如何使用vuex實現(xiàn)兄弟組件通信

    如何使用vuex實現(xiàn)兄弟組件通信

    這篇文章主要給大家介紹了關于如何使用vuex實現(xiàn)兄弟組件通信的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-11-11
  • Vue組件生命周期運行原理解析

    Vue組件生命周期運行原理解析

    這篇文章主要介紹了Vue組件生命周期運行原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11
  • 關于Element Loading的全局使用(自定義Loading)

    關于Element Loading的全局使用(自定義Loading)

    這篇文章主要介紹了關于Element Loading的全局使用(自定義Loading),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue中v-for更新檢測的操作方法

    Vue中v-for更新檢測的操作方法

    v-for 指令需要使用 item in items 形式的特殊語法,其中 items 是源數(shù)據(jù)數(shù)組,而 item 則是被迭代的數(shù)組元素的別名。今天通過本文給大家介紹Vue中v-for更新檢測的操作方法,感興趣的朋友一起看看吧
    2021-10-10
  • 解決vite項目Uncaught Syntaxerror:Unexpected token>vue項目上線白屏問題

    解決vite項目Uncaught Syntaxerror:Unexpected token>vue項

    這篇文章主要介紹了解決vite項目Uncaught Syntaxerror:Unexpected token>vue項目上線白屏問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評論

周至县| 宁乡县| 普定县| 英吉沙县| 伊宁县| 成安县| 仙桃市| 兰考县| 嘉峪关市| 通化县| 延津县| 河池市| 宜春市| 遵义县| 津南区| 白城市| 社旗县| 十堰市| 太康县| 乳山市| 石首市| 都江堰市| 兰坪| 玛沁县| 河北省| 会泽县| 金堂县| 丹寨县| 布尔津县| 无极县| 大埔区| 文山县| 灌阳县| 麻江县| 永城市| 陈巴尔虎旗| 嘉善县| 奉贤区| 蓝田县| 烟台市| 陇西县|