第四課時: vue狀態管理-Bus

Bus相當於廣播和分發事件的方法。vue如何實現非父子組件間的通信,可以通過實例一個vue實例Bus作爲媒介,要相互通信的兄弟組件之中,都引入Bus,然後通過分別調用Bus事件觸發和監聽來實現通信和參數傳遞。

Bus.js文件:

import Vue from 'vue'
export default new Vue()

在需要通信的組件都引入Bus.js

import Bus from '../common/js/bus.js'

添加一個button,點擊後$emit一個事件

<button @click="toBus">子組件傳給兄弟組件</button>

methods

methods: {
    toBus () {
        Bus.$emit('on', '來自兄弟組件')
    }
  }

另一個組件也import Bus.js 在鉤子函數中監聽on事件

import Bus from '../common/js/bus.js'
export default {
    data() {
      return {
        message: ''
      }
    },
    mounted() {
       Bus.$on('on', (msg) => {
         this.message = msg
       })
     }
   }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章