在vue2中.0不推荐使用事件$dispatch
和$broadcast
.
我发现$dispatch
和$emit
相似.
他们之间有什么区别?迁移时直接将$dispatch
替换为$emit
安全吗.
在vue2中.0不推荐使用事件$dispatch
和$broadcast
.
我发现$dispatch
和$emit
相似.
他们之间有什么区别?迁移时直接将$dispatch
替换为$emit
安全吗.
不,你不能用$emit
代替$disptach
.无论您在哪里使用它来从child to parent进行通信,您都可以替换它,但对于其他情况,您可能需要采取其他方法.
来自documentation人(Evan you在Upgrade Tips中的类似 comments ):
这些方法最常见的用途之一是在父母与其直接子女之间进行沟通.在这些情况下,您实际上可以听到v-on children 发出的$emit.这使您能够以更明确的方式保持活动的便利性.
然而,在远亲/远祖之间交流时,$emit对你没有帮助.相反,最简单的升级可能是使用集中式事件中心.
从$dispatch份文件中
分派一个事件,首先在实例本身上触发它,然后沿着父链向上传播.当它触发父事件侦听器时,传播停止,除非该侦听器返回true.
另一方面,$emit:
在当前实例上触发事件.任何附加参数都将被传递到侦听器的回调函数中.
所以你可以看到,if you are passing communication to multiple layer of parent elements via 100, you have to handle that code differently with 101