1.props,emit
最常用
https://cn.vuejs.org/v2/api/#vm-emit
https://cn.vuejs.org/v2/guide/components-props.html
2.$parent和$children
指定已創(chuàng)建的實例之父實例,在兩者之間建立父子關系。子實例可以用 this.$parent 訪問父實例箕速,子實例被推入父實例的 $children 數組中髓迎。
注意??節(jié)制地使用 $parent 和 $children - 它們的主要目的是作為訪問組件的應急方法粥庄。更推薦用 props 和 events 實現(xiàn)父子組件通信
https://cn.vuejs.org/v2/api/#parent
3.provide 和 inject
這對選項需要一起使用薯酝,以允許一個祖先組件向其所有子孫后代注入一個依賴狮杨,不論組件層次有多深母截,并在起上下游關系成立的時間里始終生效。
注意?? 主要為高階插件/組件庫提供用例橄教。并不推薦直接用于應用程序代碼中清寇。
https://cn.vuejs.org/v2/api/#provide-inject
4..sync語法糖
2.3.0+ 新增
在有些情況下,我們可能需要對一個 prop 進行“雙向綁定”护蝶。不幸的是华烟,真正的雙向綁定會帶來維護上的問題,因為子組件可以修改父組件持灰,且在父組件和子組件都沒有明顯的改動來源盔夜。
https://cn.vuejs.org/v2/guide/components-custom-events.html#sync-%E4%BF%AE%E9%A5%B0%E7%AC%A6
5. $attrs 和 $listeners
2.4.0 新增
$attrs負責收納屬性
$listeners負責收納事件
https://cn.vuejs.org/v2/api/#vm-attrs
6.vuex 非父子組件
https://vuex.vuejs.org/zh/
7.event bus(事件總線)非父子組件
event bus事件總線,組件之間的通信需要使用一個中介來實現(xiàn),在event bus里面使用一個空的Vue實例來做為通信的橋梁
事件總線是高手在民間