关于this.$emit和event.$emit

来源:3-6 如何用自定义事件进行vue组件通讯

椒盐皮皮虾

2020-06-07

老师想请问下,在兄弟组件通信中,this.emit中的this也是一个vue实例,为什么要使用一个新的vue实例来$emit来抛出一个事件

写回答

2回答

双越

2020-06-07

自定义事件,要有一个第三方的实例,来存储 $on 绑定的事件。

如果用 this ,那该组件销毁了的话,之前 $on 绑定的事件也就丢失了,这样会出 bug 的。

0
2
JavaScript__yxq
回复
慕粉1470117225
如果用this绑定,this应该是当前组件吧,组件生命周期结束销毁之后,$on肯定会出问题呀,我也测试过,用this代替event根本不行。
2021-05-09
共2条回复

椒盐皮皮虾

提问者

2020-06-07

我好像想明白了,是不是因为兄弟组件中的this是不同的实例,事件派发与监听不会有交集,需要一个新的实例进行事件处理的桥梁

0
2
慕粉1470117225
$on是在vue原型上的,所以不同实例是可以有交集的
2020-07-20
共2条回复

2024版 前端框架及项目面试 聚焦Vue3/React/Webpack

面向1-3年前端的框架及项目面试“刚需内容”

4663 学习 · 1644 问题

查看课程