您可以在全局级别创建一个简单的 EventBus:
const eventBus = new Vue();
然后eventBus.$emit('signal-name', ...args)
然后你可以做一系列的事情,比如
eventBus.$on(name, callback) -> 创建一个监听器来接收发射
eventBus.$once(name, callback) -> 接收一次并移除监听器
eventBus.$off(name, callback) -> 移除监听器
您可以传递一些布尔或 CSS 类:
eventBus.$emit('signal-name', true) -> 然后根据它显示一些东西
eventBus.$emit('signal-name', ['is-white', 'is-bold'])
注意:对于$off:
* If no arguments are provided, remove all event listeners;
* If only the event is provided, remove all listeners for that event;
* If both event and callback are given, remove the listener for that specific callback only.