UseState 或 UseReducer 來管理 FormData
我有一個問題,對于在反應中呈現表單資料(例如登錄、注冊、聯系表單資料),它是更好的 usereducer 還是 usestate?
uj5u.com熱心網友回復:
兩者都有優點和缺點這里是檔案中的一些資訊:
- 代碼大小:通常,使用 useState 您必須預先撰寫更少的代碼。使用 useReducer,您必須撰寫 reducer 函式和調度操作。但是,如果許多事件處理程式以類似的方式修改狀態,useReducer 可以幫助減少代碼。
- 可讀性:當狀態更新很簡單時,useState 很容易閱讀。當它們變得更復雜時,它們會使您的組件代碼膨脹并使其難以掃描。在這種情況下,useReducer 可以讓您將更新邏輯的方式與事件處理程式的發生情況清晰地分開。
- 除錯:當您遇到 useState 錯誤時,可能很難判斷狀態設定錯誤的位置以及原因。使用 useReducer,您可以將控制臺日志添加到您的 reducer 以查看每個狀態更新,以及它發生的原因(由于哪個操作)。如果每個動作都是正確的,你就會知道錯誤出在 reducer 邏輯本身。但是,與 useState 相比,您必須逐步執行更多代碼。
- 測驗:reducer 是一個不依賴于你的組件的純函式。這意味著您可以單獨匯出和測驗它。雖然通常最好在更真實的環境中測驗組件,但對于復雜的狀態更新邏輯,斷言您的 reducer 針對特定初始狀態和操作回傳特定狀態可能很有用。
- 個人喜好:有人喜歡減速機,有人不喜歡。沒關系。這是一個偏好問題。你總是可以在 useState 和 useReducer 之間來回轉換:它們是等價的!
如果您經常遇到由于某些組件中的狀態更新不正確而導致的錯誤,并且希望在其代碼中引入更多結構,我們建議您使用 reducer。您不必對所有事情都使用減速器:隨意混合搭配!你甚至可以在同一個組件中使用 useState 和 useReducer。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/482166.html
標籤:javascript 反应 反应钩子 使用状态 使用减少器
