dva使用

dva和UmiJs结合的官方文档:dva | UmiJS

准备工作

1.预先定义好model数据仓库信息,namespace表示model仓库名,state表示model仓库中需要用到的数据。

 const Model = {namespace: 'coursewareName',state: {coursewareList: [],total: 0,},

2.绑定组件(CoursewareManage)与数据仓库(coursewareName)

 const mapStatetoProps = ({ coursewareName }) => {return { coursewareName }}export default connect(mapStatetoProps)(CoursewareManage)

数据更新过程:

1.首先通过调用函数等操作发送dispatch请求

 const getCoursewareList = (pageSize, current, order) => {setIsLoading(true)dispatch({type: 'coursewareName/getCoursewareList',payload: {pageSize,current,order,},callback: () => {setIsLoading(false)},})}

2.由dispatch执行model中的effects对应的函数,在effects函数中调用service函数,通过异步方式从后端中获取到所需数据

 effects: {*getCoursewareList({ payload, callback }, { call, put }) {const res = yield call(getRemoteCoursewareList, payload)yield put({type: 'saveCoursewareList',payload: res,})if (callback) callback()},},

3.获取到的数据传递给reducers中的函数,通过同步方式更新model中的state数据信息

 reducers: {saveCoursewareList(state, { payload }) {//console.log('reducers:', payload)return {...state,coursewareList: payload.data,total: payload.total,}},},

5.state数据更新后,由于数据已绑定组件,react会重新渲染组件ui

dva和UmiJs结合使用教程:effects,reducer,dispatch相关推荐

  1. ant+dva Ract系统前端开发教程

    ant+dva Ract系统前端开发教程 开发准备: 基本知识: 1.React http://reactjs.cn/react/docs/getting-started-zh-CN.html或htt ...

  2. dva 打包多个html,使用dva+umi+antd构建页面(一)

    使用dva+umi+antd构建页面 首先确保安装npm或者yarnhtml 建立新应用 首先建立应用目录node mkdir myapp && cd myapp 推荐使用 yarn ...

  3. React框架之对Dva和Umi的简单理解

    文章目录 简述Dva,Umi和路由的理解 Dva基本流程与文件目录规划 Model Reducer.Effect Dva订阅 (Subcription) service(服务) 一个路由的文件目录 使 ...

  4. 学习react前端框架dva

    dva 是由阿里架构师 sorrycc 带领 team 完成的一套前端框架,在作者的 github 里是这么描述它的:"dva 是 react 和 redux 的最佳实践". 一. ...

  5. dva + antd + mockjs 实现用户管理

    1.安装dva-cli npm install dva-cli -g 2.创建应用 dva new dvadashboard [dvadashboard为项目名] 3.安装mockjs npm ins ...

  6. 200行代码写一个简易的dva

    在美团实习的时候,第一次接触到dva这样的react框架,回学校的时候,就想有机会自己实现一下这样的框架,虽然自己水平有限,但是可以试一试哈. 目标是实现dva model的同步和异步 dispatc ...

  7. umijs配置eslint,prettier,stylelint,commitlint

    umijs的资料好像不是很多,真的配置了超级久呜呜呜呜,踩了居多坑 我记得我的是一创建项目,默认就有yorkie,所以我就不想用husky,我看网上都是husky教程的,关于umijs+yorkie的 ...

  8. antd pro中如何使用mock数据以及调用接口

    antd pro的底层基础框架使用的是dva,dva采用effect的方式来管理同步化异步 在dva中主要分为3层 services  models  components models层用于存放数据 ...

  9. 前端技术学习记录:react+dvajs+ant design实现暴走计算器的页面重构(二)

    前端技术学习记录:react+dvajs+ant design实现暴走计算器的页面重构(二) 前言 定义 Model connect 起来 更新state 拥抱变化 主题切换 更换页面 获取当前设备类 ...

最新文章

  1. pythonsys模块介绍_sys 模块介绍 - Clarkhedi的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. Linux之chattr命令详解
  3. 【Linux】一步一步学Linux——skill命令(143)
  4. Mac系统下安装PIL
  5. mongoDB3.2.8 升级遇到的问题
  6. Hibernate Search 4.2最终发布:支持空间查询
  7. python策略模式包含角色_详解Python设计模式之策略模式
  8. c++的thread类(c++线程简单用法)
  9. 基础 | 这波编程基础绝了!快来学习!
  10. 朝鲜黑掉韩国政府版 Word
  11. python runner_【httprunner】自动化测试入门(基于python)!
  12. 利用python实现方差分析
  13. 冲突域和广播域的隔离与扩展
  14. [ Linux驱动炼成记 ] 12 -音频驱动TAS5754添加EQ参数
  15. Ansible事实变量常见fact
  16. 主机加固,数据防泄漏的解决方案
  17. mysql 取差值_MySQL计算相邻两行某列差值的方法
  18. 如何开发app软件?程序员揭秘你还没听过的1种方法
  19. 大数据能力_大数据基础能力_脑图
  20. VS2019显示错误未定义标识符delay

热门文章

  1. nodejs毕业设计源码大学生心理咨询微信小程序
  2. 从零开始,手把手教你如何在Ubuntu下编译VLC-Android源码
  3. 网页外链微信公众号文章里的图片显示未经许可无法显示的解决办法
  4. EtherCAT运动控制卡小线段前瞻的连续插补运动
  5. [GBase 8s 教程]GBase 8s 事务(TRANSACTION)
  6. 烽火算法针对的是什么,烽火算法对网站优化有什么好处
  7. git revert回退时提示One or more files are in a conflicted state
  8. 曾遭周鸿祎全网封杀的360猛将 :草根打工到36岁身家上亿的逆袭!
  9. AE鱼眼镜头畸变扭曲修复插件:RevisionFX RELens for Mac
  10. 并行多核体系结构基础 Yan Solihin 第4章 针对链式数据结构的并行 摘录