dva 基礎教程-- 簡介

Dva 一個自動化搭建  react !開發工具!的框架

主要是對 redux  react-dux 和 redux-saga 的 整合優化。

 

Dva 又是 建立在 Roadhog 工具之上

Roadhog 是 atool-build 和 dora 的整合。(也被稱爲 可配置的 create-react-app)

  •  atool-build 是對webpack.js 二次封裝( 內置了常用的 babel---js轉換,css轉換,file,包括 生產環境的 css分離,js壓縮,公共文件提取。統統囊括。) )
  •  dora 是對 類似web-dev-server(nodejs) 服務相關封裝通過中間件的方式引入

 

Dva 初始化  在一個空的文件夾裏  dva init 就會自動 生成 基礎的開發環境 (具體可以查看 dva的開發文檔, 基礎命令可以通過 dva -h 來查看)

 

Dva 要配置集中在  .src/models/xxx.js  這裏集中配置了  redux 相關 fetch 相關 邏輯

  •  比如說redux 配置部分(以計數器爲例)
    •  namespace : 'count'  // 這個可以理解爲  action   reducer  共同使用的 type命名
    • State: {count : 0}  // 這個就是 ruducer 裏的初始 state

                                        

 

// 傳入 初始狀態 。。 得到 新的狀態

//dva 中省略了  switch(){ case:…  } 的寫法

add (state) {

return {count:state.count +1}

},

minus (state) {

return {count:state.count -1}

}

},                

 

 

       

其中 形參 state   對應  state ={count:0}

返回 新的狀態值

  • reducers: {

//Reduce

function counter(state = { count: 0 }, action) {

   const count = state.count

    switch (action.type) {

         case 'add':

            return { count: count + 1 }

         default:

            return state

     }

}

 

   Store.dispatch(  {type  : 'add'}  }

 

 

 

 

 

  在頁面中  使用

 connect ( mapStateToProps)( Indexpgage )  ;

來獲取 新的狀態值。

 

(state)=> {  return {  propsCount(新值) :  state.[命名空間].count }  }

//state 其實就是 組件的最新的 props

 

 mapStateToProps : 顧名思義 就是  映射 state 狀態 到 組件的 props裏。(而且是全局的props)  所以  讀取映射的新狀態用  state.count…..   ,映射關係用鍵值對

 

 

 

Dva 自定義 配置  

  • 既然是基於 roadhog 工具。所以 配置 方法 參考  roadhog 文檔就可以了
  • 注意一點: roadhog 是基於 af-webpack 配置文件 有兩種格式  roadhog2.0 之前用的是 .roadhogrc ,
    1. 第一種  創建  .webpackrc 在項目根目錄(dva 自動生成)。裏邊的語法 JOSN 格式。 修改後,最好重啓服務生效。
    2. 第二種 創建  .webpackrc.js  在項目根目錄,  但語法要用 export 方式。

 

 

Dva  2.0

依賴-- roadhog2.0 

默認  開啓 熱更新 (hmr ) -- 依賴  babel-plugin-dva-hmr

默認  頁面展示錯誤  -- 依賴  redbox-react

默認  自動格式化代碼  -- 依賴 husky

新增

1.Dispatch (action) => promise

2.新增 dva/dynamic 接口,配合 react-router@4 處理組件的按需加載

3.take自動補全 namespace 前綴

4. 路由基於react-router4.0

 

更多詳情請訪問  https://github.com/sorrycc/blog/issues/48

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章