安装一个dva.js+react.js的项目
// Install dva-cli
$ npm install dva-cli -g
// Create app and start
$ dva new myapp
$ cd myapp
$ npm install
$ npm start
1.启动文件的配置
2.关于model
格式与说明:
(1)
model 包含 5 个属性:
namespace : model 的命名空间,同时也是他在全局 state 上的属性,只能用字符串,不支持通过 . 的方式创建多层命名空间。
state:初始值,优先级低于传给 dva() 的 opts.initialState。
reducers:以 key/value 格式定义 reducer。用于处理同步操作,唯一可以修改 state 的地方。由 action 触发。
effects:官方解释:以 key/value 格式定义 effect。用于处理异步操作和业务逻辑,不直接修改 state。由 action 触发,可以触发 action,可以和服务器交互,可以获取全局 state 的数据等等。
个人理解:就是相关的事件请求,与服务器通信的事件 使用yield call(‘路径’,‘参数’)
返回值使用reducers里的事件 修改state的值
subscriptions:以 key/value 格式定义 subscription。subscription 是订阅,用于订阅一个数据源,然后根据需要 dispatch 相应的 action。在 app.start() 时被执行,数据源可以是当前的时间、服务器的 websocket 连接、keyboard 输入、geolocation 变化、history 路由变化等等。
参考:https://github.com/dvajs/dva/blob/master/docs/API_zh-CN.md#model
(2) 组件与model的绑定
路由里的配置:
组件与model的关联建立
绑定组件与model使用 connet
参考资料:
https://github.com/dvajs/dva-docs/blob/master/v1/en-us/getting-started.md
https://github.com/dvajs/dva/blob/master/docs/API_zh-CN.md#model
https://juejin.im/entry/5852184b128fe1006b5454c6
https://github.com/dvajs/dva/blob/master/docs/Concepts_zh-CN.md