1. 程式人生 > >vue非父子元件傳值之釋出訂閱模式

vue非父子元件傳值之釋出訂閱模式

vue非父子元件傳值之釋出訂閱模式

目前瞭解的元件傳值的幾種方式

  1. props 再熟悉不過了
  2. vuex 也比較常用
  3. evenbus
  4. 釋出訂閱
    主要說一下發布訂閱

Vue.prototype.bus = new Vue();

在這裡插入圖片描述
在這裡插入圖片描述

其實優化一下,也可以這樣

Vue.prototype.$subscribe = subscribe
Vue.prototype.$publish = publish
let eventHub = new Vue()
function publish(key, ...args) {

  eventHub.
$emit(key, ...args) return this }
function subscribe(key, callback) {

  eventHub.$on(key, callback.bind(this))

  return this
}