请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于this.$emit和event.$emit

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

正在回答 回答被采纳积分+3

2回答

双越 2020-06-07 08:02:46

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

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

0 回复 有任何疑惑可以回复我~
  • 老师 ,这个组件销毁和$on绑定的事情有啥关系啊 。$on绑定的事件不是绑在全局this上吗。还是说我们那个绑定的回调函数如果不是显示写在$on的第二个参数上,而是写一个函数的引用,这样在组件销毁的时候就会出问题是吗
    回复 有任何疑惑可以回复我~ 2020-07-20 14:14:27
  • 如果用this绑定,this应该是当前组件吧,组件生命周期结束销毁之后,$on肯定会出问题呀,我也测试过,用this代替event根本不行。
    回复 有任何疑惑可以回复我~ 2021-05-09 16:19:39
提问者 椒盐皮皮虾 2020-06-07 03:07:51

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

0 回复 有任何疑惑可以回复我~
  • this都是同一个吧?
    回复 有任何疑惑可以回复我~ 2020-07-16 17:03:03
  • $on是在vue原型上的,所以不同实例是可以有交集的
    回复 有任何疑惑可以回复我~ 2020-07-20 14:34:54
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信