dva与redux

6,727 阅读1分钟

介绍

dva 首先是一个基于 redux 和 redux-saga 的数据流方案

然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,所以也可以理解为一个轻量级的应用框架。

使用

dva封装了redux,减少很多重复代码比如action reducers 常量等

  1. dva操作都是在models层,通过namespace作为key,标识不同的模块state。state存储数据

2. reducers跟传统的react-redux写法一致,所有的操作放在reducers对象内

3. 异步操作写在effects对象内:

其实* fetchList 就是function * fetchList,是个Generator状态机

call, put其实是saga的写法,dva集成了saga。

  1. ui组件调用使用@connect包裹就可以从this.props上调用dev中的方法和数据了

  1. dva-loading可以自动处理 loading 状态,不用一遍遍地写 showLoading 和 hideLoading

个人总结

与redux数据流向类似,比redux更为简洁,省去定义常量和action,dva支持异步,redux如果想要支持异步得弄中间件,redux-saga或者chunk这些。

更多细节请点击官网 dvajs.com/