Umi 通常会搭配 Dva 使用,用于管理页面状态和逻辑
一、注册 model
首先需要在 .umirc.js 中启用 dva 插件
export default {
plugins: [
['umi-plugin-react', {
dva: {
immer: true,
},
}],
],
}
dva 通过 model 的概念把一个模型管理起来,相当于其他状态管理工具中的 store,通常由以下组成
export default {
namespace: '', // 表示在全局 state 上的 key
state: {}, // 状态数据
reducers: {}, // 管理同步方法,必须是纯函数
effects: {}, // 管理异步操作,采用了 generator 的相关概念
subscriptions: {}, // 订阅数据源
};
在 umi 中会按照约定的目录来注册 model,且文件名会被识别为 model 的 namespace
model 还分为 src/models/*.js 目录下的全局 model,和 src/pages/**/models/*.js 下的页面 model
然后在 src/pages/ 下的页面文件中通过 connect 关联对应的 model
import React, { Component } from 'react';
import { connect } from 'dva';