React狀態管理Redux(一)
阿新 • • 發佈:2021-12-02
一 Redux: Redux基本使用
Redux
是一個獨立的、專門用於做狀態管理的JS庫。不是react外掛庫,這一點要和react-redux
區分開。redux
可以用在react(angular, vue等)專案中,但基本是與react配合使用。
Redux作用:管理react應用中多個元件共享的狀態。
Redux工作流程:
解釋:
react元件中含有狀態state;不用redux的情況下,在react中更新狀態的方法是setState()。
在redux中改變狀態的步驟是:
- 建立action,也就是元件所發生的事件。action裡有事件名稱type和狀態資料data。
- 分發action(即dispatch(action))給儲存狀態(state)的倉庫store
- 管理員reducer是個純函式,負責處理管理倉庫中的狀態。reducer函式的引數是舊的狀態和action。
- 管理員reducer把處理好的新狀態交給倉庫store
- react元件從倉庫store中接收變化後的狀態。完畢。
- 主要做的部分是分發action和reducer產生新的狀態交給store。
二 React-redux:並不是redux的內建庫,而是獨立的一個庫;一般把所有元件分為兩類:
1 第一類: UI元件
- 只負責UI的呈現,不帶有任何的業務邏輯
- 通過props接收資料(一般資料和函式)
- 不使用redux和react-redux的任何api
- 一般儲存在components資料夾下
2 第二類: 容器元件
- 負責管理資料和業務邏輯,不負責UI呈現
- 使用Redux和react-redux的api
- 一般儲存在containers資料夾下
三applyMiddleware(中介軟體)
redux預設是不能進行非同步處理的:
同步
的action返回的是一個物件=> ({ })。
非同步
action返回的是一個函式=> { }
,在返回的函式裡面,執行非同步程式碼。