2015-02-07 83 views
4

我對React很新,只是試驗它。我想知道什麼是一些常見的模式,或者庫是用於處理組件間通信的內置函數。例如,我有輸入組件和根據輸入控制器中的內容從服務器更新的「列表」組件。想想一個自動完成框。由於組件具有表示邏輯,如果兩者不能「除」以外怎麼辦?他們在頁面的不同部分,因此有兩個不同的控制器。React組件交互和全局狀態更改

另外,如果我有一個通過Ajax工作的登錄/註銷按鈕,該怎麼辦?我想,整個頁面上的許多不同組件都會對登錄/註銷操作做出反應,重新配置它們自己,以符合全局「已記錄」狀態以及從服務器爲已登錄的特定用戶檢索到的數據。

什麼是React對這些變化做出「反應」的最佳方式是什麼?謝謝

回答

2

您應該結賬FluxDispatcher。 它有點像pub/sub系統,但沒有pub/sub系統的問題。優點是所有事件都在一個方向上流動,這使得架構變得更加簡單和可擴展。

+0

由於該問題是專門針對React的,因此更容易查看實際的'Flux'實現'redux'和'redux-react'。 – 2016-12-26 02:53:32

0

如果你還沒有,你應該檢查Facebook的官方React文檔。他們有一個非常全面的教程,涵蓋了90%的場景,包括組件交互的最佳實踐。他們也非常擅長從沒有知識的建設。只需要大約20分鐘即可完成:https://facebook.github.io/react/tutorial/tutorial.html

正如另一個答案中提到的,Redux是一個了不起的庫,用於處理應用程序狀態並保持組件不相互瞭解。基本上,您可以擁有父級和子級組件,但是如果您擁有超過2級子級的組件,則應考慮使用Redux(或Flux)來處理不相關組件之間的狀態。 Redux解決的問題只是分解這些依賴關係,並且仍然允許組件擁有單一的事實根源。他們的官方文檔也非常好:http://redux.js.org/