自定义组件间通讯

由于单向数据流的设计思想,在Vue2.x中,已经不支持$dispatch, $broadcast了。spa

clipboard.png

可是Element实现了一个弱化版的父子组件间通讯方法,从新实现了一次$dispatch, $broadcast。.net

最终实现效果

https://jsfiddle.net/huang_ju...设计

讲一下实现思路吧code

  1. 对于dispatch,经过vm.$parent属性,找到父组件。而后经过vm.$options获取自定义属性componentName, 与调用时传入的参数作一个对比,来判断是不是须要响应的父组件
  2. 对于broadcast,经过vm.$children,遍历子组件,而后经过vm.$options获取自定义属性componentName, 与调用时传入的参数作一个对比,来判断是不是须要响应的子组件

vm.$options

clipboard.png

能够用来在组件中自定义属性的时候,经过实例属性vm.$options来获取。component

vm.$parent

clipboard.png

这个属性能够和vm.$root结合使用。ip

vm.$children

clipboard.png

获取子组件的实例属性。get

总结

经过自定义组件通讯it

  • 仍是须要掌握一些vm的实例属性,此次学到了$parent,$options,$children的使用
相关文章
相关标签/搜索