文章目录
dva
dva 是 react 的最佳实践,本身其实没有什么内容,只是把各个常用的包引入后封装了一层。
- react-dom
- redux
- react-redux (router 与 redux 结合的中间件)
- redux-saga
- react-router-redux(history 与 redux 结合的中间件,源码这个库已废弃,推荐改为 connected-react-router)
用法
一个 react 项目对应一个 dva 对象。
调用 dva 会返回一个对象 app。app 上有几个常用函数
- model:将传入的对象转为 redux/saga 形式,并在键名前添加命名空间,之后保存在内部的 _models 中。
- router:传入一个函数,会给这个函数传入一个带有 history 属性的对象,这个传入函数的返回结果会被渲染在页面中
- start:传入一个 selector,表示挂载根节点的 DOM 元素。
1 | import React from 'react'; |
实现
mini 版 dva
1 | import React from 'react' |
其余文件
prefixNamespace.js
1 | import { NAMESPACE_SEP } from './constants' |
router.js
1 | export * from 'react-router-dom' |
constants.js
1 | export const NAMESPACE_SEP = '/' |