webpack4+react+antd从零搭建React脚手架(四)-redux搭建

2023-05-16

redux

文档地址
redux是对数据的状态管理,是react不可缺少的一部分,具体的概念这里就不进行详细的介绍。本文主要是介绍怎么引入redux和使用redux。

  • 单向数据流:从父组件流向子组件,兄弟组件无法共享数据,
  • state:react中的状态,是只读对象,不可直接修改。
  • reducer:基本函数,用于对state的业务处理。
  • action:描述事件行为改变state

安装

npm install --save redux
npm install --save react-redux
npm install --save-dev redux-devtools

应用中所有的 state 都以一个对象树的形式储存在一个单一的 store 中。 惟一改变 state 的办法是触发 action,一个描述发生什么的对象。 为了描述 action 如何改变 state 树,你需要编写 reducers。

安装redux调试工具

  • 在Chrome安装扩展程序Redux DevTools

这里直接说一下如何设计redux的状态树,(仅是个人观点)。

  1. 包含的同样名字的角色文件
  • actionTypes.js 定义action的类型。
  • actions.js 定义action的构造函数,决定这个功能模块可以接受的动作。
  • reducer.js 定义这个功能模块如何相应actions.js中定义的动作。
  • component 目录,有的人喜欢命名为view,根据个人喜欢,这里不做要求;包换这个功能模块的所有的react的组件。
  • index.js 把这个文件所有的角色导入,然后统一导出。
  1. 状态树的设计

以下是我们需要遵循的几个原则

  • 一个模块控制一个状态节点
  • 避免冗余的数据
  • 树形结构扁平
  1. 使用步骤
  1. 创建action
  2. 创建reducer
  3. 创建store
  4. 通过connect方法将react和redux连接起来。
  5. 添加provider作为项目的跟组件,用于数据的存储。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

webpack4+react+antd从零搭建React脚手架(四)-redux搭建 的相关文章

  • prop 类型在 React 应用程序中不起作用

    我正在尝试在我的react redux应用程序中使用proptypes 但它不起作用 或者我做错了什么 这是代码示例的结尾 LoginPage propTypes login form PropTypes string function m
  • 如何访问 React Redux 中的存储状态?

    我只是在制作一个简单的应用程序来学习异步与 redux 我已经让一切正常工作 现在我只想在网页上显示实际状态 现在 我如何在渲染方法中实际访问商店的状态 这是我的代码 所有内容都在一页中 因为我刚刚学习 const initialState
  • 类型错误:中间件不是函数

    我正在尝试在我的reactjs 应用程序中应用redux 由于这些错误 我无法继续 我确信我已经安装了我需要的所有依赖项 这是我的 package json 的相关部分 dependencies react redux 5 0 6 redu
  • 从redux中的reducer获取ID

    我是个新手 正在尝试使用 React 和 Redux 构建一个简单的书签应用程序 我无法解决这个问题 用户可以创建一个书签并将其添加到多个文件夹 所以我派了一个addMark bookmark 行动 然后addMark folder or
  • 元素类型无效:需要字符串(对于内置组件)或类/函数

    import React from react import ReactDOM from react dom import Map from components map container map import App from App
  • 应用程序关闭时访问持久存储

    目前 我正在使用 redux persist 在本地存储数据 我想在应用程序关闭时访问 Persited 商店 就像有新的推送通知时一样 我尝试使用 AsyncStorage 访问存储 结果返回 null if AppState curre
  • 将参数传递给mapDispatchToProps()

    我不能撒谎 我对 React Redux 有点困惑 我认为很多操作都需要参数 例如从商店中删除项目 但即使我仍在阅读如何以这种方式从组件分派来传递参数 现在大约 2 小时 我没有得到任何答案 我被尝试过this props dispatch
  • 使用 Redux 获取数据时如何避免竞争条件?

    我们有一个异步获取对象的操作 我们称之为getPostDetails 它需要一个参数来获取哪个帖子 一个 ID 用户会看到一个帖子列表 可以单击其中一个来获取一些详细信息 如果用户点击 Post 1 我们会发送一个GET POST动作可能看
  • 将 props 传递给 React-Redux 容器组件

    我有一个在 React Native Navigator 组件中创建的 React Redux 容器组件 我希望能够将导航器作为道具传递给该容器组件 以便在其演示组件内按下按钮后 它可以将对象推送到导航器堆栈上 我想做到这一点 而不需要手动
  • react-native-google-places-autocomplete 给它一个值,而不仅仅是默认(初始)值

    我有一个工作
  • vscode 中使用 antd 框架的按钮提示

    我在 vscode 中使用 antd 的按钮和输入 但它在按钮上显示错误 我想知道为什么 我试过输入法 没有显示错误 如图所示 import React from react import styles from index css imp
  • React Router 4 中 URL 更改但视图未更改

    我使用的是react router 4而不是react router 3 所以我使用的是react router dom 我试图让 this props history push 工作 但它所做的只是保持视图相同 但 URL 发生了变化 例
  • 测试 React Redux - 无法读取未定义的属性或未定义的包装器

    我在为我的测试套件在组件中设置 Redux 存储时遇到了一些问题 问题是 即使我尝试未连接的挂载 测试也会在 authState 中查找变量时抛出错误 我有以下组件 import React Component from react imp
  • Ant Design Collapse - 关闭按钮

    我是 Ant Design 的初学者 在使用 Ant Design 库中的 Collapse 和 Form 时遇到了这个问题 我已经设置了我的页面 其中添加新项目的表单位于折叠中 并且折叠下方有一个项目列表
  • 将属性映射到react-redux中的状态

    我有一个使用的组件state向用户提供数据 例如 div this state variableInState div 该组件可以调度一些方法 例如onClick行动 我目前正在使用react redux an connect映射方法sto
  • React Redux 在 Modal 中的使用

    我正在 React 中学习 Redux 我在 React 中使用 Redux 进行 Modal 开发 我的代码如下 render return
  • 既然 Angular 是双向数据绑定,为什么我应该在 Angular 中使用 Redux?

    据我了解 Redux 主要是为了在 javascript 应用程序中启用双向数据绑定 这对于非双向数据绑定的框架非常有用 例如 React 但为什么要在 Angular 中使用它 因为它本身就是双向数据绑定的 为了说明我的问题 我在本机 A
  • 应该如何在 Ant Design Upload 组件中设置 customRequest 以使用 XMLHttpRequest?

    我的组件一团糟 现在我传递了一个函数 我已经尝试了一百万件事但无法让它工作 export default class DatafileUpload extends Component initialState fileUploading f
  • React Redux 混乱

    事实证明 Redux 对我来说有点难以理解 我想知道是否有人可以帮助我指出正确的方向 以获取我想要的结果 只是一个预警 我正在使用 ES6 语法 好的 我已经设置了一些沙箱来测试 redux 的工作原理 这是我正在使用的当前文件设置 act
  • 使用异步数据初始化组件

    我想弄清楚如何以及在哪里在react redux thunk中为我的选择框加载数据 即在我的操作上调用调度 我不确定它是否应该放入我的应用程序容器的构造函数中 或者我应该将其加载到我的组件中 在我的示例中 MyDropdown 我的主要应用

随机推荐

  • es6小记

    const let关键字 let xff1a 声明 使js存在块级作用域 const xff1a 定义常亮 xff0c 定义以后不可以更改 若是引用的类型 xff0c 那可以更改他的属性 const a 61 b 789 br a b 61
  • js检测浏览器内核、版本号

    js检测浏览器内核 版本号 span class hljs function span class hljs keyword function span span class hljs title isBroswer span span c
  • 点击地图获取经纬度(基于腾旭地图api)

    废话不多说上图 接着代码段 xff08 注意 xff1a 这里的key要换成自己的key xff09 span class hljs doctype lt DOCTYPE html gt span span class hljs tag l
  • dataTable使用

    官网 DataTable英文网址 DataTables中文网址 DataTables一些例子 本文主要是围绕下面的例子进行讲解的 xff0c 请看效果图 说明 xff1a 全选功能 xff0c 点击删除 xff0c 批量删除 xff0c 批
  • 判断checkbox 是否选中

    checkbox 选中事件 首先input的标签设置checkbox lt input name 61 span class hljs string 34 operaMode 34 span span class hljs class sp
  • jQuery添加新元素/内容

    整理了一下jq添加元素 HTML的一些操作 xff0c 效果图见下 结构插入 内部插入 append 在被选元素的结尾插入内容 appendTo 方法在被选元素的结尾 xff08 仍然在内部 xff09 插入指定内容 prepend 在被选
  • 高德地图开发bug

    第一次使用的时候报错 INVALID USER DOMAIN 然后百度了一下 xff0c 官方文档上是这么说的 xff1a xff0c 请先检查一下您在申请Key的时候 xff0c 是否设置了域名白名单 xff0c 如果设定了 xff0c
  • 新 iPhone SE 卖 3299 元起,香不香?

    作者 吴波 来源 网易科技 xff08 ID xff1a tech 163 xff09 4 月 15 日 xff0c 等待了 1485 天之后 xff0c 当年的 4 英寸 性能小钢炮 iPhone SE 终于迎来全新升级款 The New
  • 图片剪裁并预览上传

    预览效果 详细代码讲解 现在有点忙 xff0c 稍后便会讲解 demo下载地址图片剪裁并预览上传
  • js实现下载功能

    js实现下载功能 最近需要做一个下载功能 xff0c 然后到网上查了查 xff0c 顺便写了个小demo xff1b 在h5新特性里面 xff1b a标签有个download的属性 xff1b span class hljs tag lt
  • 前端js免费的CDN网站

    1 BootCDN http www bootcdn cn 目前前端开源的项目几乎都涵盖了 xff0c 支持http和https 2 百度静态资源公共库 http cdn code baidu com 一个是稳定 xff0c 快速 xff0
  • js区号插件(全国电话区号)

    最近由于要和美团和饿了么外卖对接 xff0c 地址要输入区号 xff1b 网上百度没有找到插件 xff1b 于是自己就动手撸了一个 xff1b 效果图见下 xff1b 为什么第一个是浙江呢 xff0c 因为我在杭州啊 xff01 xff01
  • 那些看过的好文章

    我总结的js性能优化的小知识http www cnblogs com liyunhua p 4529086 html19 个 JavaScript 有用的简写技术https segmentfault com a 11900000126738
  • java小白成长记02

    位运算符 左移 lt lt 就是乘以2的次幂运算 xff0c 移几位就是几次幂 xff1b 3 lt lt 3即为3 2 2 2 61 24 xff1b 6 lt lt 2即为6 2 2 61 24 xff1b 右移 gt gt 就是除以2
  • web前端开发-谷歌浏览器插件

    搜集了一些web前端开发所需要的谷歌浏览器插件 xff1b 具体内容见下图 xff1b 下载地址 使用方法 xff1a 点击谷歌浏览器右上角 gt 更多工具 gt 扩展程序 xff1b 直接将 crx文件拖进去即可安装 xff1b
  • webpack4+react+antd从零搭建React脚手架(一)

    本人是在windows环境下搭建的 xff0c ios自行摸索 代码地址PreByter 项目初始化 首先就是项目初始化 xff0c 一定确保安装node或者yarn二者均可 xff0c npm init 或者 yarn init 此时会生
  • webpack4+react+antd从零搭建React脚手架(二)

    接着上文 xff0c 对webpack 的配置的优化和对css xff0c 图片的编译 以及引入antd 项目代码地址react project 优化webpack 生成的文件名添加Hash值 output filename 34 js n
  • 一线大厂面试必知必会大公开

    作者 代码随想录 来源 代码随想录 企业一般通过几轮技术面试来考察大家的各项能力 xff0c 一般流程如下 xff1a 一面机试 xff1a 一般会考选择题和编程题 二面基础算法面 xff1a 就是基础的算法都是该专栏要讲的 三面综合技术面
  • Python实现观测值o文件和精密星历sp3文件读取

    博主之前准备利用Python编写精密单点定位程序 xff0c 奈何写了一半的读取文件代码 xff0c 觉得太浪费时间 xff0c 就此作罢 xff0c 这些时间不如多用来研究现有代码 xff0c 把这部分放弃的代码拿出来 xff0c 希望给
  • webpack4+react+antd从零搭建React脚手架(四)-redux搭建

    redux 文档地址 redux是对数据的状态管理 xff0c 是react不可缺少的一部分 xff0c 具体的概念这里就不进行详细的介绍 本文主要是介绍怎么引入redux和使用redux 单向数据流 xff1a 从父组件流向子组件 xff