用这个玩意,最起码了解react-redux 和 redux相关的东西,不然有点懵逼
开启
@umijs/plugin-dva
引入相关配置信息报错,需要新件models / index 并且暴露出去export default {namespace:'MINGCHENG'} //通过验证后,才会开启,
创建模块
import { Effect, Reducer, Subscription } from 'umi';
import { getHome } from '../server/home'; //异步请求
export interface UserInfoState {
userName: string;
num:number
}
export interface UserInfoTypes {
namespace: 'user';
state: UserInfoState;
effects: {
query: Effect;
};
reducers: {
save: Reducer<UserInfoState>;
changeName: Reducer<UserInfoState>;
};
subscriptions: { setup: Subscription };
}
const userModel: UserInfoTypes = {
namespace: 'user', //vuex的模块命名空间
state: {
//数据集合
userName: '老朱第一次尝试dva',
num:1
},
effects: {
//相当于vuex的异步action方法集合,或者等同于react-sage的使用方式
//异步action方式
*query(action, { call, put, select }) {
// * yield 看做asy