2017-08-23 30 views
0

這個問題更多的是最好的做法,而不是與代碼相關,但我一直在網上搜索一段時間沒有太多進展。我們是否應該添加Redux以及將React部分添加到現有的AngularJs應用程序中?

我們有一個現有的AngularJs(1.x)應用程序,我們試圖在其中添加簡單的React組件。添加React不是問題。我想知道將Redux添加到此是否有意義?我知道Redux是一個應用程序級別的狀態組件,但由於我們僅在部分中添加了React,因此在這種情況下使用Redux是不必要的矯枉過正?我提到Redux只是假設未來React組件的複雜性和數量可能會增長。如果我們不得不添加一些簡單的React組件,我不會考慮Redux。

這是一個excellent post,它將React添加到Angular應用程序中,但不添加Redux。

回答

0

我建議您閱讀由丹Abramov - REDX的創造者的You might not need redux

文章的要點是隻有使用Redux才能解決您遇到的問題。我建議你實施你的反應組件,如果你開始遇到問題的狀態,調查是否redux是一個適合這些具體問題的解決方案。

0

首先,我還建議閱讀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作爲獨立視圖時,提升狀態可能是一個非常有效的解決方案。如果數據和狀態變得複雜,您將'感覺'需要更詳細的解決方案。

對不起,沒有解決方案,只是希望突出幾個問題,可以幫助您決定:)

相關問題