Umi , Dva… 都是阿里出来的 react 栈的框架
dva 是基于现有应用架构 (redux + react-router + redux-saga 等)的一层轻量封装,没有引入任何新概念,全部代码不到 100 行。( Inspired by elm and choo. )
所以 dva 首先是一个基于 redux 和 redux-saga 的数据流方案,然后为了简化开发体验,dva 还额外内置了 react-router 和 fetch,于是也可以理解为一个轻量级的应用框架。
dva 是 framework,不是 library,类似 emberjs,会很明确地告诉你每个部件应该怎么写,这对于团队而言,会更可控。另外,除了 react 和 react-dom 是 peerDependencies 以外,dva 封装了所有其他依赖。
Umi 和 Dva 都是基于 React 的框架,Umi 主要以路由为主,Dva 主要管理数据流。也可以理解说 umi 基于 dva 的基础,再借点 nextjs 和 其他一些相关最佳实践来的封装
umi 的定位 简单来说就是:React 全家桶 + dva + jest + antd (mobile) + less + eslint 那一套帮你整合好了。 你不需要再去单独配置。
这种对于大团队的基建来讲,避免了团队内各写各的内耗,通过同一个底层框架就能收敛起大家的应用。
这篇会重点放在 umi 的实现上。