dva 是阿里体验技术部开发的轻量级应用框架,dva 的名字来源于守望先锋中的角色 D.va。dva 主要作用是用来解决组件之间的通讯问题。
在以前的 react 项目中解决数据流与组件通信问题会引入 redux,后续为了使用管理 redux 异步操作的中间件功能,从而继续引入redux-saga 或 redux-thunk,但是这样的缺点就是引入多个库,并且致使项目结构复杂。但是现在 dva 的出现:
dva = React-Router + Redux + Redux-saga + fetch
将上述4个工具库包装在一起,简化了 API,简化了开发体验,让应用开发更加方便快捷。而且 dva 封装了 redux 和 redux-saga,思想大致相同,对于使用过 redux 和 redux-saga 的用户尤其友好,当然对于初学者,dva 的概念也是易于理解的。
dva 的最简结构:
import dva from 'dva';
const App = () => <div>Hello dva</div>;
// 创建应用
const app = dva();
// 注册视图
app.router(() => <App />);
// 启动应用
app.start('#root’);
接下来我们就来实现一个 demo。