react組件之間的通信


react推崇的是單向數據流,自上而下進行數據的傳遞,但是由下而上或者不在一條數據流上的組件之間的通信就會變的複雜。解決通信問題的方法很多,如果只是父子級關係,父級可以將一個回調函數當作屬性傳遞給子級,子級可以直接調用函數從而和父級通信。

組件層級嵌套到比較深,可以使用上下文getChildContext來傳遞信息,這樣在不需要將函數一層層往下傳,任何一層的子級都可以通過this.context直接訪問。

兄弟關係的組件之間無法直接通信,它們只能利用同一層的上級作爲中轉站。而如果兄弟組件都是最高層的組件,爲了能夠讓它們進行通信,必須在它們外層再套一層組件,這個外層的組件起着保存數據,傳遞信息的作用,這其實就是redux所做的事情。

組件之間的信息還可以通過全局事件來傳遞。不同頁面可以通過參數傳遞數據,下個頁面可以用location.param來獲取。其實react本身很簡單,難的在於如何優雅高效的實現組件之間數據的交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章