dva
来源:互联网 发布:中国贸易条件变化数据 编辑:程序博客网 时间:2024/06/05 10:36
DVA 简介
dva是基于现有应用架构(redux+react-router+redux-saga等)的一层轻量封装,没有引入任何新的概念。
一 整个程序的入口文件是根目录下的index.js 文件
import dva from 'dva';import { browserHistory } from 'dva/router';import './index.css';// 1. Initializeconst app = dva({ history: browserHistory,});// 2. Plugins// app.use({});// 3. Modelapp.model(require('./models/example'));// 4. Routerapp.router(require('./router'));// 5. Startapp.start('#root');
dva-cli生成的文件给我们写的注释已经写的很清楚了先初始化,在加载插件,在加载Model,在加载路由,最后启动程序
MVVC
(1)app.model(obj)
- namespace : model 的命名空间
- state: 初始state
- reducers: 同步的修改状态的操作,由actions触发(state,action) => state
- effects:异步的操作,并不直接修改state,由action触发,也可以调用actions。(action,{put,call,select})
- subscriptions:异步的只读操作,并不直接修改state,可以调用actions。
({ dispatch, history })
put(action)和dispatch(action)
这里effects中的put(action)等同于subscriptions中的dispatch(action),它们的作用都是分发一个action。
yield put({ type: actionType, payload: attachedData, error: errorIfHave});dispatch({ type: actionType, payload: attachedData, error: errorIfHave});
call(asyncFunction)
调用一个异步函数
const result = yield call(api.fetch, { page: 1 });
select(function)
从全局状态中选择数据
const count = yield select(state => state.count);
import { Router, Route } from 'dva/routes';app.router(({ history } => ({ <Router history={ history }> <Route path="/" component={App} /> </Router>});
阅读全文
1 0
- dva
- dva JS
- dva-knowledgemap
- 【React dva】dva基础用法记录
- dva 项目初始化安装
- dva修改端口
- dva创建项目
- React+DVA开发实践
- dva构建react应用程序
- react dva 碎片01
- DVA知识集合
- react dva 碎片02
- dva+react+ant.design
- dva + antd 初次使用
- dva的用法
- dva+react+antd
- dva的简介
- dva学习(一)
- 日志级别的选择:Debug、Info、Warn、Error还是Fatal
- 机器学习经典算法之-----最小二乘法
- UML类图关系
- 色彩模型
- 人靠衣装马靠鞍:7 款 Nova / Apex Launcher 精品图标包推荐
- dva
- Xilium.CefGlue
- 大学生活随笔之高中反思
- Spring容器初始化过程
- 理解MVC模式
- Harbor开源项目有奖征文活动
- 容器镜像之腾挪大法: Harbor镜像远程复制视频演示
- 管理员(root)密码设置
- 一起加入vFORUM 2017云原生DevOps论坛!