Alf*_*ang 8 javascript events mvvm vue.js vuejs2
在vue2.0事件$dispatch和$broadcast已经过时了.
我发现它$dispatch与之相似$emit.
它们之间的区别是什么?它是安全的直接更换$dispatch成$emit迁移时.
Sau*_*abh 14
不,你不会是能够取代$disptach与$emit无处不在.无论您在哪里使用它进行从孩子到父母的通信,您都可以替换它,但对于其他情况,您可能需要采取其他方法.
这些方法最常见的用途之一是在父母与其直接子女之间进行交流.在这些情况下,您实际上可以通过v-on侦听来自孩子的$ emit.这使您可以通过增加显式性来保持事件的便利性.
但是,当在遥远的后代/祖先之间进行通信时,$ emit将无法帮助您.相反,最简单的升级是使用集中式事件中心.
来自$ dispatch的文档
调度事件,首先在实例本身上触发它,然后沿父链向上传播.传播在触发父事件侦听器时停止,除非该侦听器返回true.
另一方面$ emit:
在当前实例上触发事件.任何其他参数都将传递给侦听器的回调函数.
所以你可以看到,如果你通过通信传递给多层父元素$dispatch,你必须以不同方式处理该代码$emit
| 归档时间: |
|
| 查看次数: |
10563 次 |
| 最近记录: |