Vue.js 事件总线$emit的别名
我想为常用的事件总线方法Vue.js 事件总线$emit的别名,vue.js,vue-component,event-bus,Vue.js,Vue Component,Event Bus,我想为常用的事件总线方法$emit,$on等创建别名 这样我就可以像这样引用事件总线对象:EventBus.publish(…) 我试过: import Vue from 'vue' const EventBus = new Vue() export const publish = EventBus.$emit export const subscribe = EventBus.$on 然后: 从'@/utils/EventBus.js'导入*作为EventBus 但是我发现,$emit不是
$emit
,$on
等创建别名
这样我就可以像这样引用事件总线对象:EventBus.publish(…)
我试过:
import Vue from 'vue'
const EventBus = new Vue()
export const publish = EventBus.$emit
export const subscribe = EventBus.$on
然后:
从'@/utils/EventBus.js'导入*作为EventBus
但是我发现,$emit不是一个函数
我做错了什么
谢谢请确保绑定到对象,否则该方法将无法工作:
从“Vue”导入Vue
const EventBus=new Vue()
export const publish=EventBus.$emit.bind(EventBus)
export const subscribe=EventBus.$on.bind(EventBus)
export const unsubscribe=EventBus.$off.bind(EventBus)
或者更明确地说:
导出函数发布(名称,…参数){
EventBus.$emit(名称,…参数)
}
导出函数订阅(名称,fn){
EventBus.$on(名称,fn)
}
导出功能取消订阅(名称,fn){
EventBus.$off(名称,fn)
}
您可以这样导入它:
import*作为事件总线从'./EventBus.js'导入
订阅('event',处理程序)
我会尝试const publish=EventBus.$emit.bind(EventBus)
我很确定我尝试了bind
,但很可能在其他地方弄糟了:)谢谢