在vue2.0中,事件$dispatch
和$broadcast
已弃用。
而且我发现$dispatch
与相似$emit
。
它们之间有什么区别?迁移时直接替换$dispatch
成安全吗$emit
?
不,你不会是能够取代$disptach
与$emit
无处不在。您可以替换它,无论使用它在从孩子到父母的通信中使用什么位置,但是对于其他情况,则可能必须采取其他方法。
这些方法最常见的用途之一是在父母与其直系子女之间进行交流。在这些情况下,您实际上可以通过v-on收听来自孩子的$ emit。这使您可以通过增加明确性来保持事件的便利性。
但是,在远方的后代/祖先之间进行通信时,$ emit不会帮助您。相反,最简单的升级方法是使用集中式事件中心。
从$ dispatch的文档中
调度事件,首先在实例本身上触发它,然后沿父链向上传播。传播在触发父事件侦听器时停止,除非该侦听器返回true。
另一方面$ emit:
在当前实例上触发事件。任何其他参数都将传递到侦听器的回调函数中。
因此,您可以看到,如果您通过将通信传递给多个父元素层$dispatch
,则必须使用$emit
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句