我有一个动态生成的组件,可以同时在一个页面上安装多次。例如,如果某个饲料返回了10种食品,则有10种成分。这个FoodItem组件有一个在安装时创建的事件总线,如下所示:
mounted() {
EventBus.$on('SOME_EVENT', this.handleMyEventUniquely);
},
beforeDestroy() {
EventBus.$off('SOME_EVENT', this.handleMyEventUniquely);
},
methods: {
handleMyEventUniquely(event) {
// this component, although mounted 10 times, will react different that the others.
}
}
这有效。但是,如果删除了10个组件中的1个,它将触发beforeDestroy生命周期事件并删除ENTIRE应用程序的该事件总线侦听器。我只需要删除该组件即可。有没有办法做到这一点?另请注意,我不想将其放在父组件中。
我能够解决它。上面的代码确实有效,这只是我的范围界定问题。我不恰当地与此交换了自己。