首先,我還建議閱讀You might not need redux評論。
要深入瞭解問題,重要的是要考慮Redux的用途以及爲什麼我需要在應用程序中使用它。我會問自己一些問題:
- 你的實際應用程序狀態在你的角度應用程序在哪裏?您是否在使用與模型綁定的範圍,使用數據進行集中式服務......?您是否計劃將其遷移到Redux商店?
- 您是否正在考慮將Redux與Angular一起使用,或者僅限於新的React組件?您將傳遞給您的數據通過Redux React組件只用於React渲染,還是將其與其他Angular代碼共享?
- 如果它將被共享,您是否也將在您的Angular代碼中使用Redux?如果沒有,您是否必須在redux和角度狀態之間手動同步數據?就個人而言,我不喜歡在Redux商店中複製數據的想法,例如角度服務。
- 如果您打算將Redux與Angular一起使用,那麼與雙向綁定有關的某些Angular功能會如何與Flux-like架構相沖突?你會嘗試在你的角碼中強制使用類似於助焊劑的設計嗎?
- 那些新的React組件是否共享狀態?如果不是,那麼這些組件中的任何一個狀態都很複雜,難以管理,只是提升狀態?
我問所有這些問題,因爲我試圖找出問題並考慮我使用Redux的原因:成爲數據中真正的單一來源(針對整個應用程序或複雜組件)。 基本上Redux確實有助於通過設計保持應用程序的幾個部分之間的狀態同步。然而,如果你不需要保持組件同步,或者如果你的應用程序的其他部分(即現有的Angular代碼)將打破這種設計,你需要保持狀態同步(Redux存儲和其他部分之間的狀態同步應用程序),這可能是一個問題。
另外,關於您的一個擔心:「假設React組件的複雜性和數量可能會在未來增長」。如果您正在考慮反應組件的應用程序狀態的複雜性,那麼可以考慮Redux。如果僅從組件數量來看它很複雜,我會考慮兩次。
以我的觀點來看,當你在應用程序內部使用React作爲獨立視圖時,提升狀態可能是一個非常有效的解決方案。如果數據和狀態變得複雜,您將'感覺'需要更詳細的解決方案。
對不起,沒有解決方案,只是希望突出幾個問題,可以幫助您決定:)