【发布时间】:2017-06-12 07:12:51
【问题描述】:
我正在使用总线以允许组件通过此链接中描述的方法与其他组件交互:https://forum.vuejs.org/t/create-event-bus-in-webpack-template/4546/2。
我有一个在创建的钩子中调用的方法,它使用总线发出事件。
created () {
this.getReviewDeck()
},
myMethod () {
bus.$emit('increment')
}
在另一个组件(包含在上述组件中)中,我将事件侦听器附加到创建的挂钩中,如下所示:
created () {
bus.$on('increment', this.incrementCount)
},
incrementCount () {
console.log('count incremented')
}
如果我第一次访问该组件,一切正常,控制台将记录一次“计数递增”。但是,如果我离开该组件,然后在下次“计数递增”时导航回它,将被记录两次,如果我离开并再次返回,它现在将被记录三次,等等。
我不太清楚到底发生了什么或如何最好地解决这个问题,这样每次我访问组件时,消息只会记录一次而不是多次。
【问题讨论】:
-
如何设置总线?也许你多次定义它?我通常在应用程序的引导程序中将总线添加到 Vue 组件原型中。这将确保您不会多次定义它。作为第一个“调试步骤”,您应该在您创建的方法中进行控制台日志,您在总线上注册以检查它被调用的频率。它应该只被调用一次。
-
“离开/访问组件”是什么意思?
标签: vuejs2 vue-component vue.js