作者:zhenhua-lee
链接:https://www.zhihu.com/question/51831855/answer/225446217
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 框架: dva是个框架,集成了redux、redux-saga、react-router-redux、react-router
- 快速初始化: 可以快速实现项目的初始化,不需要繁琐地配置
- 简化开发:将initState、saga、reducer集成到一个model里面统一管理,避免文件散落在各个文件里面,便于快速查找与开发
- 简洁的API:整个项目中只有dva、app.model、app.router、app.use、app.start几个API
- 无缝对接:跟react的生态没有冲突,例如可以直接使用redux devtool工具
- 动态机制:app.start以后,仍然可以注册model,灵活性较高
再说说个人觉得不太爽的地方吧:
- namespace不统一: dva中的action.type格式是namespace/XXX,且在model中不需要添加前缀namespace,但是在组件中dispatch,却需要添加prefix
- action问题:action会散落在两个地方,一个是saga里面,另外一个是component dispatch的时候,当然这个问题在使用redux-saga的时候就会存在,只是dva仍然没有很好地统一起来。