關於umijs+dva+antDesign 一些知識點的梳理

_knight發表於2019-12-23

首先umijs高度封裝了路由,使路由變的更靈活,開發中幾乎不用過多理會,dva封裝了redux 和 redux-saga的資料流方案!

1.全域性佈局

在layouts檔案裡面的index.js

關於umijs+dva+antDesign 一些知識點的梳理

關於umijs+dva+antDesign 一些知識點的梳理

2.約定式路由和自定義路由

1.約定式路由即是在pages資料夾下建立對應的檔案既會生產相應的路由 umijs.org/zh/guide/ro…

2.自定義式路由在 umirc.js中routes裡面配置相應的路由,也可以在pages裡面新建一個router.js檔案去配置

關於umijs+dva+antDesign 一些知識點的梳理

關於umijs+dva+antDesign 一些知識點的梳理

3.對於dva 中models這塊的理解這裡以pages下的about為列,具體還是要看dva官網https://dvajs.com/guide/introduce-class.html#app-model

關於umijs+dva+antDesign 一些知識點的梳理

關於umijs+dva+antDesign 一些知識點的梳理
【這裡有個地方濤提一下,@connect同時傳入一個loading,這個是dva封裝的一個在請求資料時載入中的一個狀態,它返回的是一個布林值 如loading: loading.effects['aboutpage/getData'],loading在資料請求前是true,響應結束後為false ,我們可以根據這個狀態給請求函式加 loading動畫】

元件和modles建立連線的方式有多種,我這裡只列舉2種相對簡便的寫法

1.使用修飾器的方式要注意!!!!

@connect() 下面不可以直接export default class xxx不然會報錯,要使用 class xxx 然後再最後export default xxxx

@connect(({ aboutpage, loading }) => ({
  aboutpage,
  loading: loading.effects['aboutpage/getData'], 
}))

2.

export default connect(({ aboutpage, loading }) => ({aboutpage,loading: loading.effects['aboutpage/getData'],}))(About);
【這種是高階元件的寫法,包括修飾器也是,有興趣可以自己去研究】

!!!第一次寫文章,誠惶誠恐!還望大神不吝賜教,多多提攜,有問題歡迎指正!

相關文章