父元件将自己的狀态傳遞給子元件,子元件當做屬性來接收,當父元件更改自己狀态的時候,子元件接收到的屬性就會發生改變
父元件利用ref對子元件做标記,通過調用子元件的方法以更改子元件的狀态,也可以調用子元件的方法
父組中定義ref引用
子元件定義好資料源和修改資料源方法
父元件将自己的某個方法傳遞給子元件,在方法裡可以做任意操作,比如可以更改狀态,子元件通過<code>this.props</code>接收到父元件的方法後調用。
在react沒有類似vue中的事件總線來解決這個問題,一是我們借助它們共同的父級元件通過代理的方式來實作,但過程會相當繁鎖。react提供了Context來實作跨元件通信, 而不必顯式地通過元件樹的逐層傳遞 props。
複雜的非父子元件通信在react中很難處理,多元件間的資料共享也不好處理,在實際的工作中我們會使用flux、redux、mobx來實作
定義store類 導出createContext中的Provider,COnsumer
在祖先節點中釋出消息: Provider value=任意資料
在子孫節點中訂閱:Consumer 回調函數{value=>(元件)}
1.定義資料源store
store.js
2.祖先節點
3.後代節點
一個子物體挂在事件
另一個挂在屬性
通過實踐改變屬性,來改變另一個元件接受的内容
祖先
兄弟Cmp2
兄弟Cmp1