dva 是阿里体验技术部开发的轻量级应用框架,dva 的名字来源于守望先锋中的角色 D.va。dva 主要作用是用来解决组件之间的通讯问题。

    在以前的 react 项目中解决数据流与组件通信问题会引入 redux,后续为了使用管理 redux 异步操作的中间件功能,从而继续引入redux-saga 或 redux-thunk,但是这样的缺点就是引入多个库,并且致使项目结构复杂。但是现在 dva 的出现:

    1. dva = React-Router + Redux + Redux-saga + fetch

    将上述4个工具库包装在一起,简化了 API,简化了开发体验,让应用开发更加方便快捷。而且 dva 封装了 redux 和 redux-saga,思想大致相同,对于使用过 redux 和 redux-saga 的用户尤其友好,当然对于初学者,dva 的概念也是易于理解的。

    dva 的最简结构:

    1. import dva from 'dva';
    2. const App = () => <div>Hello dva</div>;
    3. // 创建应用
    4. const app = dva();
    5. // 注册视图
    6. app.router(() => <App />);
    7. // 启动应用
    8. app.start('#root’);

    接下来我们就来实现一个 demo。