簡體   English   中英

使用Redux進行組件狀態管理

[英]React Component State management using redux

所以基本上,我碰到過很多文章,它們都是通過flux或redux來管理狀態。 我想知道UI組件有自己的狀態嗎? 讓redux管理Api調用和成功的Toast消息等是一種好習慣,但是UI組件應該具有自己的本地狀態? 請有人詳細說明什么是行業最佳實踐?

盡管這個問題需要意見,但我將留下我的答案。 對此沒有標准的最佳實踐。 如果編寫代碼的人不止一個,則可以歸結為團隊的便利性和基本規則。

我經常使用Redux。 但是,我不會在組件中使用局部狀態。

諸如輸入onChange處理程序之類的表單處理需要本地狀態。 將全局狀態用於onChange處理程序不是有效的。

可重用組件使用本地狀態。 同樣,歸結為可重用性是技術可重用性還是業務可重用性。 如果要開發自定義滾動條組件,請使用本地狀態。 但是,如果使用的注釋表單在應用程序中到處使用,請使用全局狀態。

我更喜歡將大多數東西放在全球狀態。 我也使用redux thunk。 在redux thunk中,可以在thunk函數內訪問全局狀態。 這非常有用,因為它避免了對道具/上下文的依賴。

我確實將一些簡單的東西保持在本地狀態-例如,顯示/隱藏一些東西。 我不介意在使用本地狀態隱藏某些內容之前等待承諾解決。

總體而言,使用全局狀態還是局部狀態的決定主要是基於便利性。 除了您和您​​的團隊可以接受的標准之外,沒有其他標准規則。

React是一種聲明式處理UI的方法。 框架中有一些規則,例如狀態,道具,上下文。 留給開發人員根據這些原語使UI聲明性和高性能。 只要代碼可以被他人維護和理解,開發人員如何做就無關緊要。

好問題! 答案通常是“視情況而定”,但是在某些情況下,您可能更願意使用一種方法。

使用Redux來存儲與應用程序相關狀態。 例如,應顯示的當前頁面/面板。 如您所述,顯示通知/消息-在redux狀態下存儲是有意義的,因為替代方案是在整個地方傳遞狀態,例如,錯誤道具冒泡到您的根組件中,從而呈現烤面包消息。 在獲取/處理與整個應用程序相關的數據時,例如,在多個位置出現的事物的列表,使用thunk也是一個好主意。

使用組件狀態來存儲僅與組件相關的狀態。 也就是說,如果您要填寫表單,則將文本輸入值,復選框等的值存儲在組件狀態(可能與容器組件和表示性組件結合使用)是有意義的,因為此時的值不相關到應用程序的其余部分。

在問了許多專業人士和行業開發人員之后,我才知道通過redux管理狀態取決於您的應用程序范圍。 但更重要的是,如果我正在處理企業應用程序,則必須通過redux管理應用程序狀態。

現在的問題是,在我們的redux存儲中應該保留什么。 好吧,您幾乎可以將所有內容存儲在redux存儲中,但更好地管理組件的本地狀態。 例如,打開組件布爾值應在本地狀態或任何字符串或標頭名稱等中進行管理。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM