作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我在 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/
我是一名优秀的程序员,十分优秀!