將反應與redux一起使用時,是否可以將本地狀態存儲在state
對象中?通過行爲將所有內容存儲在狀態樹中很快變得單調乏味。感覺有些狀態僅適用於應用程序的展現/展示,而不是邏輯。通過演示我的意思是動畫/閃爍,面板的擴展/縮小狀態,表格中的排序標準等等。處理反應和還原中的本地狀態
24
A
回答
13
這很難回答,因爲不同的人會將組件的不同部分歸類爲「狀態」。
由於Redux與應用程序狀態有關,作爲經驗法則,任何您期望應用程序級別「撤消/重做」按鈕生效的內容都應該作爲Redux操作發生。 Redux有一個撤銷存儲插件的事實可能只是因爲應用程序狀態的範圍。
當然,一些動畫不可撤銷,因爲這些動畫應該真的與應用程序狀態中的變化相關聯,而不是自己改變。儘管如此,其餘的例子聽起來很像應用程序狀態。如果我排序了一個表格,然後按下撤消,我絕對期望排序被撤消。
5
正如Tyrsius已經提到的 - 對此有不同的看法。
對於我們 - 作爲一個經驗法則 - 我們確保跟蹤應用程序狀態的所有內容,我們希望能夠看到我們是否能夠遠程連接到某些用戶當前會話。
如果我們不在意是否鼠標懸停在某個元素上,我們可能只會使用組件狀態(如果我們需要狀態的話)。
儘管我們在腳本中只有一些這樣的情況,但我們想知道用戶在大多數情況下看到的更容易調試的情況。
您提到了面板的展開/摺疊狀態 - 我們有時會爲我們創建處理這種展開/摺疊邏輯的組件,所以我們不必爲我們創建的每個面板都編寫這樣的縮減器。
我們可以利用這些組件是這樣的:
<Panel id="somePanelId">some content</Panel>
面板組件將確保應用程序狀態中跟蹤板激活狀態。這樣,保持代碼簡單並且不會讓它爆炸是非常容易的。
7
現在這是回答在redux FAQs:
有這個沒有「正確」的答案。有些用戶更喜歡在Redux中保留每一個數據片段,以便始終保持其應用程序的完全可序列化和受控版本。其他人更喜歡在組件的內部狀態內保持非關鍵或UI狀態,例如「當前打開的下拉列表」。
使用本地組件狀態很好。作爲一名開發人員,您的工作是確定組成您的應用程序的狀態以及每個州應該在哪裏生活。找到適合你的平衡點,並與之配合。
相關問題
- 1. 還原類/模塊的處女狀態
- 2. 地理位置座標沒有準備好geolib處於反應原生狀態
- 3. 爲反應/還原應用程序構建狀態
- 4. 將零件的反應狀態與還原狀態結合是否正確?
- 5. URL更改時的更新狀態還原反應
- 6. 構建本地化反應/還原應用程序的商店
- 7. 處理變量的反應本地
- 8. 我們應該使用狀態還是道具來處理投入反應?
- 9. 本機基地卡動態地反應原生和Firebase
- 10. iOS還原狀態問題
- 11. 在反應中更新本地狀態對象中的狀態js
- 12. 反應原生不重疊狀態欄
- 13. 有狀態和無狀態流處理
- 14. 反應+還原劑中還原劑的好策略?
- 15. 將cytoscape圖還原爲原始狀態
- 16. ToolbarAndroid反應本地的動態字幕結合狀態
- 17. 何處處理REST MVC應用程序中的還原操作?
- 18. 反應:原樣呈現狀態的文本
- 19. 信號處理程序和本地狀態
- 20. 使用react-navigation管理反應本機中的狀態
- 21. 反應整個應用程序的本地登錄狀態
- 22. 如何處理多個按鈕的狀態與反應?
- 23. 還原窗體組件不反映存儲狀態
- 24. 還原店的狀態未更新
- 25. 如何管理本地的組件的狀態作出反應/終極版
- 26. 將反應還原到django中
- 27. 背景地理位置反應原生
- 28. 如何在反應本機和Facebook的sdk中管理用戶帳戶狀態?
- 29. 在jQuery中還原到原始的css狀態?
- 30. 反應:基於本地存儲的設置狀態
我喜歡將應用程序狀態用於您希望能夠撤消的事情的建議。 – aviemet
什麼時候我想要做類似改變類名時滑動元素做一些動畫?這個東西應該還在redux行動中嗎? –