1. 程式人生 > >React dva 的使用

React dva 的使用

cer size 實現 -s 必須 reat const p s view

各大傳送門:

DvaJS Github

DvaJS API與示例

了解 dva
- dva = React-Router + Redux + Redux-saga + fetch

- dva的初衷是(其實應該是redux的初衷)。提供一個公共的頂層的狀態管理工具,專門為view層服務(實現雙向數據流),而讓react只專註專心負責渲染view層。

dva項目入口初始化

在初始化的時候,指定使用的路由模式,這裏使用了hash模式。

import dva from dva;
import createHistory from history/createHashHistory;
// user BrowserHistory
// import createHistory from ‘history/createBrowserHistory‘; // 1. Initialize const app = dva({ history: createHistory(), });

dva的幾個規則:
1、通過dispatch調用namespace/effects
2、state(狀態)
3、effects (異步操作)

- 函數必須帶*,也就是生成器。
- 第一個參數,可以拓展為{payload, callback}
- 第二個參數,call和put
- call 就是調用 async的action函數
- put就是調用reducers的函數來更新state。

4、reducers

5、dva是以model為單位的,所有的應用邏輯都在上面

簡而言之總結一下吧。開發dva分為兩個階段:
1、準備階段:

- 定義 state 狀態,用以綁定到 view 層;
- 定義 effects

- call用來調用 action,類似dispatch
- put用來調用reducers

- 定義 sync action 函數,用來進行異步請求;
- 定義 reducers 函數,用來更新 state。

2、調用階段:

React dva 的使用