所以我在 Vue.js 中使用 EventBus 将数据从一种方法发送到另一种方法。我有两种方法,比方说 one()
和 two()
。我正在使用 EventBus,如下所示:
one() {
EventBus.$emit("this:that", data);
}
然后我在我的其他方法中有这样的东西
two() {
EventBus.$on('this:that', data => {
window.open(data.link, '_blank');
});
}
当我第一次调用方法 one()
时,它会打开一个新选项卡,但是如果我第二次调用它,它会打开同一个选项卡两次,如果我第三次调用它一次它打开同一个选项卡三次,依此类推,直到我刷新页面并再次调用它,然后它只打开一个选项卡。我尝试使用 EventBus.$once
但它根本没有打开选项卡。
无论在刷新页面之前调用该方法多少次,我如何才能只打开一个选项卡。即我调用它三次,对于这三次调用,它每次只生成一个新选项卡,而不是一个,然后是两个,然后是三个选项卡。
任何帮助将不胜感激
最佳答案
我猜你不会调用 EventBus.$off("this:that")
来注销你的 eventBus。所以它会越来越火。
关于javascript - EventBus 发出不止一次直到页面刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54633203/