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

React Dva项目小优化之redux-action

之前 我们讲过 models
接下啦 我们来给大家讲一个新的库
这个库的话 有最好 没有影响也不大
它主要是帮助我们处理 action的
我们直接在 GitHub 官网上搜索 redux-action
在这里插入图片描述
我们搜出来 第一个就是 从星数来看 还是非常优秀的
在这里插入图片描述
我们拉下来 找到这个Documentation 然后点击进去
在这里插入图片描述
进入之后 拉下来 找到下面这个API 点击进去
在这里插入图片描述
第一件事 我们肯定是去安装这个依赖
终端执行

npm install --save redux-actions

在这里插入图片描述
它本身的API很少 只有三个
在这里插入图片描述
这里 我们也不一一介绍了
然后 我们在 src文件夹下创建一个文件夹 叫 actions 里面创建一个文件 叫 index.js

然后 我这里 根目录下 models 下有一个AsynchSchedul.js
代码是这样的

import * as api from "../services/example";export default {namespace: 'AsynchSchedul',state: {},effects: {*getAsynchSchedulList({ payload }, { call, put }) {  // eslint-disable-lineconst dataList = yield call(api.getFilmData,payload);yield put({type: 'save',payload: dataList.data});return dataList.data},},subscriptions: {setup({ dispatch, history }) {history.listen((location) =>{console.log(location);})},},
}

那么 正常情况
我们想在组件中使用这个getAsynchSchedulList函数
应该这样

this.props.dispatch({type: "AsynchSchedul/getAsynchSchedulList",payload: {id: 123}
}).then(res => {console.log(res);
})

但看着不是那么方便 我们可以将actions下的index.js改成这样

import { createAction } from "redux-actions";export const getAsynchSchedulListApi = createAction("AsynchSchedul/getAsynchSchedulList");

就是定义一个变量名 接收这里面用createAction包一层地址 然后调用导出
之后 我们在要使用的地方这样写
在这里插入图片描述
引入是肯定要引入的
然后通过this.props.dispatch 里面直接放你包裹的函数去调用 如果有参数直接传给你包装的函数
例如 我这里的对象参数 直接就放在了getAsynchSchedulListApi中

这样 做一个小优化

老实说 这个东西给人的感觉有一点点画蛇添足 不要也罢

http://www.lryc.cn/news/121572.html

相关文章:

  • Kotlin反射访问androidx.collection.LruCache类私有变量
  • 高级进阶多线程——多任务处理、线程状态(生命周期)、三种创建多线程的方式
  • 【 K8S 】 Pod 进阶
  • 众和转债,宏微转债,阳谷转债上市价格预测
  • MySQL~事务的四大特性和隔离级别
  • JMeter处理接口签名之BeanShell实现MD5加密
  • 【Golang】一文学完 Golang 基本语法
  • 《Java-SE-第三十五章》之方法引用
  • Effective Java笔记(33)优先考虑类型安全的异构容器
  • 释放AI创作潜能:从大模型训练到高产力应用
  • Ajax 笔记(一)—— Ajax 入门
  • Android Studio跳过Haxm打开模拟器
  • 从一个GPU到多个GPU
  • 小白编写一个Chrome
  • 自然语言处理学习笔记(六)————字典树
  • WPF实战项目十一(API篇):待办事项功能api接口
  • ffmpeg给视频添加时间水印,准确且不模糊
  • ① vue复习。从安装到使用
  • 【Linux】多线程——线程引入 | 线程控制
  • 查询树形目录(内存遍历成树返回)
  • Easys Excel的表格导入(读)导出(写)-----java
  • 纯净版ISO镜像下载大全(Windows、Linux、mac)
  • VMware上的Centos设置静态IP
  • 【MySQL】数据库的基本操作
  • Spring整合MyBatis(详细步骤)
  • Linux:Shell编程之正则表达式
  • Python Opencv实践 - 图像缩放
  • 大脑营行|“福安市华龙教育基金”支持家乡教育事业发展
  • Windows 2016安装Jenkins
  • 章节4:Burp Target模块