当前位置: 首页 > news >正文

【Umi】umi-max 中使用 Dva

前置介绍

Umi 是一个基于 React 的可插拔企业级前端应用框架,Umi 提供了一系列的插件和约定,使得开发者能够以约定大于配置的方式进行开发,同时还支持丰富的功能扩展和插件机制。

Dva 是一个基于 Redux、Redux-Saga 和 React-Router 的数据流管理框架。它的目标是简化 React 应用中数据的流动和管理,提供一种可预测、可维护和可扩展的状态管理方案。Dva 的核心思想是将数据和逻辑组织成以模型(Model)为单位的概念,并通过约定的方式将它们组织在一起。

具体使用

umi 现在已经内置了 dva。

  1. 首先需要配置 dva: {} 打开 Umi 内置的 dva 插件。

  2. 创建 Model:在 Umi 项目的 src/models/ 目录下创建一个新的文件,例如 example.js,用于定义一个模型。

import UserConreoller from "@/services/user"// src/models/example.jsexport default {// 命名空间namespace: 'example',// 状态(数据)state: {data: [],},// 同步更新仓库状态数据reducers: {save(state, { payload }) {return { ...state, data: payload };},},// 异步更新仓库状态数据effects: {*fetchData({ payload }, { call, put }) {const response = yield call(UserConreoller.getUser, payload); // 调用异步请求接口yield put({ type: 'save', payload: response.data }); // 触发对应的 reducer},},
};
import { request } from '@umijs/max'// src/services/user.js
function getUser() {return request('/api/user', {method: 'GET',})
}
export default {getUser
}

在上面的代码中,我们定义了一个名为 example 的模型,包含了初始状态 state 和两个方法:reducerseffectsreducers 用于处理同步操作,而 effects 用于处理异步操作。

  1. 使用 Model:在 React 组件中使用我们定义的模型。
import {useDispatch} from '@umijs/max'function ExampleComponent() {const dispatch = useDispatch()const { data } = useSelector(state => state.example)useEffect(() => {dispatch({ type: 'example/fetchData', payload: {} }); // 触发异步操作}, []);return (<div>{data}</div>);
}export default ExampleComponent
http://www.lryc.cn/news/357010.html

相关文章:

  • Inno Setup 深入浅出-文件的显示
  • 数据链路层协议——以太网协议
  • 一篇讲透数据结构之链式队列
  • 【408真题】2009-24
  • 6年IT找工作想法
  • TOPSIS综合评价
  • 修改vuetify3的开关组件v-switch在inset模式下的大小
  • m1系列芯片aarch64架构使用docker-compose安装nacos
  • 优化耗时业务:异步线程在微服务中的应用
  • torch.scatter看图理解
  • 适合学生党的蓝牙耳机有哪些?盘点四大性价比蓝牙耳机品牌
  • 【ORB_SLAM系列3】—— 如何在Ubuntu18.04中使用自己的单目摄像头运行ORB_SLAM3(亲测有效,踩坑记录)
  • Science Advances|柔性超韧半导体纤维的大规模制备(柔性半导体器件/可穿戴电子/纤维器件/柔性电子)
  • VirtualBox虚拟机与bhyve虚拟机冲突问题解决@FreeBSD
  • 【网络层】ICMP 因特网控制协议
  • 汇编原理(四)[BX]和loop指令
  • Linux查看设备信息命令
  • transformer的特点
  • 27快28了,想转行JAVA或者大数据,还来得及吗?
  • 英飞凌 AURIX TriCore 单片机开发入门
  • Centos安装,window、ubuntus双系统基础上安装Centos安装
  • 2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷6(容器云)
  • 第13章 常用类
  • 15.数组的方法(改变原数组和不改变原数组)
  • 随后记: uniapp uview u-dropdown 下拉菜单固定高度滑动不生效
  • 一文梭哈动态代理
  • 如何查询Windows 10电脑的IP地址
  • java: 警告: 源发行版 8 需要目标发行版 8
  • CCF-CSP认证 2023年12月 2.因子化简
  • 基于Vue2与3版本的Element UI与Element Plus入门