2016-03-24 58 views
13

管理狀態作出反應只有如果使用Redux和React-Redux,不需要React組件中的狀態?

我明白,如果你正在使用才反應過來創建一個應用程序,你最終將創建不同的反應的組分中管理所有狀態。

管理與反應,終極版

如果你決定使用Redux的結合反應,然後你可以將所有的狀態,從每個反應的組分到整體終極版應用程序狀態的狀態。然後,每個需要一小部分Redux應用程序狀態的組件可以通過React-Redux的connect函數掛鉤到該狀態。

問題

這是否意味着你不再需要編寫任何陣營與處理成分發生化學反應的state(即this.setState),因爲陣營 - 終極版是connect荷蘭國際集團通過將數據傳遞到陣營與終極版狀態的組件container組件爲props

+2

是的。無論你是否應該需要關於你的應用程序的更多討論和細節。儘管有單一的事實來源總是很好的。 – azium

+1

儘管您只想堅持React,但正在尋找更輕量級的方法來處理組件狀態,您可以添加像MobX(https://mobxjs.github.io/mobx/)這樣的狀態管理庫。它可以幫助您處理內部組件狀態(https://medium.com/@mweststrate/3-reasons-why-i-stopped-using-react-setstate-ab73fc67a42e#.5xoga86e9),還可以將狀態存儲在您的零件。 –

回答

8

對此有不同的看法,但一般的看法似乎是,redux應該只包含「應用程序狀態」。個人反應組件如下拉菜單或模式仍然會有自己的狀態。

還有很多在這場爭論雖然,看看這個問題,例如如何管理本地組件的狀態:https://github.com/reactjs/redux/issues/159

部分項目已經彈出正在試圖解決這個「問題」:

+4

我第二個這個。讓我們來聽聽Redux的創造者說什麼:) https://twitter.com/dan_abramov/status/623097205386293248 – dannyjolie

+2

我同意:state可以是有用的,例如,對於輸入組件,用戶可以在其中編輯輸入字段,僅在小週期內更新狀態。當狀態變化(輸入字段的內容)可以包含在小反應組件中時,而不需要世界其他地方知道。如果需要全循環到Redux(可能觸發許多其他方法),只需要用戶按下Enter等。 – wintvelt

+0

我同意,Redux是一種將全局狀態收集到商店中的工具,只有當狀態需要連接。 – Sequential

相關問題