1. 程式人生 > 其它 >React狀態管理Redux(一)

React狀態管理Redux(一)

一 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返回的是一個函式=> { },在返回的函式裡面,執行非同步程式碼。