简介
dva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一个轻量级的应用框架。
umi架构下使用dva
model 位置:src/models 文件夹下
定义 model
export default {
namespace: '', // 表示在全局 state 上的 key
state: {}, // 初始值
reducers: {}, // 等同于 redux 里的 reducer,接收 action,同步更新 state
effects: {}, // 异步事件
};
通过 connnect 将 model 和 view 关联起来
import { connect } from 'dva';
const App = (props) => {
const { userInfo } = props;
}
export default connect(({ user }) => {
userInfo: user.userInfo, // 这里可以放 state 和 reducers,最终都会注入到 props中去
})(App);
异步事件通过 dispatch 进行交互
dispatch({
type: '', // type
payload: {}, // 需要传递的信息
});