dva 入门开发的小总结
dva 是对 redux 的一层浅封装,基于 react 语言,实现前端代码的分层
一般会分为 3 层:
- component:组件渲染、展示页面
- models:数据组装、处理
- services:接口调用、拿数据
框架主要构成模块:
1. router.js
文件中配置路由,指定具体路径所要加载的 views 和 models
1 | { |
2. services
.roadhogrc.js
文件中配置好代理请求地址
1 | proxy: { |
serviecs/user.js
中定义好接口,获取原始数据。
对于自定义方法,提供 url、method、data(可选),返回 request 封装好的 http 请求。
1 | export async function query({page = 1 , pageSize = 10 , ...qs}) { |
3. models
1 | import pathToRegexp from 'path-to-regexp' |
query、update 前面的 * 号,表示这个方法是一个 Generator 函数
subscriptions:用于添加一个监听器
effects:异步执行 dispatch,用于发起异步请求
1 | call 是调用执行一个函数 (调用service里面的方法) |
- reducers:同步请求,主要用来改变 state
4.component
==注意:组件入口文件一定要命名为 index.js ,否则会找不到==
1 | import React from 'react' |
connect 方法将组件与数据关联在一起
export default connect(({ secUser }) => ({ secUser}))(User)
secUser 必须与对应 models 里面定义的 namespace 字段一致
组件中发起请求调用 dispatch
1 | type 字段对应 models 中 effects 和 reducers 对应方法 |