怎么在Vue中全局引入pubsub.js?
发布于 6 年前 作者 zhuhaifeng1251pm 4737 次浏览 来自 问答

每次想要使用pubsub.js的时候都要在要使用的组件引入一遍,一是感觉好麻烦,二是感觉复用性不好,所以我按照自己个人之前在Vue中全局引入其他插件的方法,想到了,在Main.js文件中,“import Pubsub from ‘pubsub-js’”,然后使用Vue.use来达到全局使用的目的,但是发现不管用,求大神踩下坑,指点下,谢谢。

2 回复

可以直接用vue定义一个bus

bus.js

  import Vue from 'vue'
  
  const bus = new Vue()
  
  export default bus

main.js

  ...
  import bus from 'path/bus.js/
  Vue.prototype.$bus = bus
  ...

使用

  // 广播
  this.$bus.$emit('eventName', args)
  // 监听
  this.$bus.$on('eventName', function (args) { 
	// todo something...
  })
// main.js
import pubSubJS from 'pubsub-js';

Vue.prototype.pubSubJS = pubSubJS;

如果你想使用Vue.use()来加载的话,你需要自己提供一个 install方法,例如

// util.js
export default {
  install(Vue, options) {
    Vue.prototype.pubSubJS = pubSubJS;
  }
}
// 在main.js
import util from './util';
Vue.use(util)

你可以在其他组件内使用 this.pubSubJS.xx来使用

回到顶部