最近项目要求用umi
,dva
还没特别熟…又要换,本来打算过段时间再用umi
试试,哎,卑微。
放一张看不懂的架构图
从源码到上线的生命周期管理
市面上的框架基本都是从源码到构建产物,很少会考虑到各种发布流程,而 umi
则多走了这一步。
用户配置的参数和插件会影响流程里的每个环节
为什么要使用umi
和dva
、loadhog
的关系
roadhog
是基于 webpack
的封装工具,目的是简化 webpack
的配置。
dva
首先是一个基于 redux
和redux-saga
的数据流方案,然后为了简化开发体验,dva
还额外内置了 react-router
和 fetch
,所以也可以理解为一个轻量级的应用框架。
dva
目前是纯粹的数据流,和 umi
以及 roadhog
之间并没有相互的依赖关系,可以分开使用也可以一起使用。dva
和umi
官网都建议dva+umi
。
umi
可以简单地理解为 roadhog
+ 路由,思路类似 next.js/nuxt.js
,辅以一套插件机制,目的是通过框架的方式简化 React
开发。
那为什么不用next.js
呢?
next.js
的功能相对比较简单,比如他的路由配置并不支持一些高级的用法,比如布局、嵌套路由、权限路由等等,而这些在企业级的应用中是很常见的。