自定義組件間通訊

由於單向數據流的設計思想,在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的使用
相關文章
相關標籤/搜索