陈成 (花名:云谦)
蚂蚁金服
杭州
PlainReact
Roof
Roof@0.5
Redux
Dva
代码写哪里?是个问题
代码分散,影响专注力
一遍遍重复地写 showLoading 和 hideLoading
出错处理太繁琐,每个异步 saga 都要 try .. catch
项目太大了,我需要动态加载方案
框架,而非类库
基于 redux, react-router, redux-saga 的轻量级封装
借鉴 elm 的概念,Reducer, Effect 和 Subscription
...
import dva from'dva';
// 1. 创建 dva 实例
const app = dva();
// 2. 装载插件 (可选)
app.use(require('dva‐loading')());
// 3. 注册 Model
app.model(require('./models/count'));
// 4. 配置路由
app.router(require('./router'));
// 5. 启动应用
app.start('#root');
仅有 5 个 API
支持 HMR
支持 SSR (ServerSideRender)
支持 Mobile/ReactNative
支持 TypeScript
支持路由和 Model 的动态加载
完善的语法分析库 dva-ast
...
全局
局部
Effect 里的逻辑错误
call Promise,然后 Promise reject
awesome-dva - dva 资源列表
dva-knowledge - 包含使用 dva 所需的所有知识点
视频教程 - 一步步创建一个应用