snow-bus v2.0.1
订阅发布模式
/**
- Created by 蓝枫 on 2019/5/21.
- @desc 订阅发布模式。 */
存放 订阅消息
let _listeners = {};
let Bus = {
添加 订阅
watch(target, callback) { if (!_listenerstarget) { _listenerstarget = []; } _listenerstarget.push(callback); },
发布信息
trigger(target, ...args) { if (!_listenerstarget) return false; _listenerstarget.forEach(listener => { // listener.apply(this, args) // 20210419 改动 listener(args) }) },
移除订阅
unwatch(target, callback) { if (!_listenerstarget) return false; if (!callback) { _listenerstarget = []; } else { _listenerstarget.forEach((listener, index) => { if (listener == callback) _listenerstarget.splice(index, 1); }) } } }
module.exports = Bus;
使用
npm install snow-bus --save
vue项目中 main.js 引入 import Bus from 'snow-bus'
Vue.use(Bus)
组件中使用 订阅 this.$bus.watch("ADD_TODE", this.addTodo); 发布 this.$bus.trigger('ADD_TODE',item);