React(三)——Redux
一、概念Redux是React里的集中状态管理工具类似Vue里的piniavuex可以独立于框架运行二、准备环境下载两个插件Redux Toolkit是一套工具集简化书写方式和react-dedux链接React和Redux之间的中间件下载命令npm i reduxjs/toolkit react-redux文件夹依旧是三、实现counter1.注册counterStore.jsimport {createSlice} from reduxjs/toolkit; const counterSlice createSlice({ name: counter, // state initialState: { value: 0, }, // mutations actions reducers: { increment: (state) { state.value 1; }, // 这里不是React 组件而是Redux Toolkit所以可以直接修改state decrement: (state) { state.value - 1; }, }, }) const { decrement, increment } counterSlice.actions; // 写在reducers里自动被redux放在了actions里到时候以函数的形式导出 // vuex操作不得是this.$store.dispatch(decrement) redux直接dispatch(decrement())因为设计成了函数 // 然后reducer是这一整个模块的代表导出出去供别的模块去引入 const reducer counterSlice.reducer; export { decrement, increment, incrementByAmount }; //这个导出用于组件使用函数的 export default reducer; //这个导出用于store用来注册的decrement, increment就是Redux Toolkit 的createSlice自动生成的 Action Creator。Action Creator 就是一个专门用来生产 Action 对象的函数。export default reducer是默认导出就像一把万能钥匙别人要使用的时候直接说要那把万能钥匙不用记的是什么名字的钥匙。别人导入的时候import counterReducer from ./counterSlice随便取名只能导出一个export { 大门钥匙, 卧室钥匙, 书房钥匙 }这种就是没把钥匙都贴了标签。别人导入的时候import { increment, decrement } from ./counterSlice必须得是这个名字可以导出多个store/index.jsimport {configureStore} from reduxjs/toolkit; import counterReducer from ./modules/counterStore; const store configureStore({ reducer: { counter: counterReducer, }, }); export default store; //这里的导出给index.js去注册的项目的index.jsimport { Provider } from react-redux; import store from ./store; const root ReactDOM.createRoot(document.getElementById(root)); root.render( React.StrictMode Provider store{store} App / /Provider /React.StrictMode );用这种Provider标签报错App /的方式是因为vuex有那种全局的this.$store可以全局挂载但是react没有就只能通过这种上下文的方式从上到下去传递2.组件中使用store方法/数据1useSelector在react中使用store中的数据需要一个钩子函数useSelector它的作用是把store中的数据映射到组件中import logo from ./logo.svg; import ./App.css; import { useSelector } from react-redux; function App() { const counter useSelector((state) state.counter); console.log(counter:, counter); //{value:0} return ( div classNameApp 111 /div ); } export default App;注意这里的state.counter是对应上面这个名称的然后里面有下图的这个模块内定义的变量2useDispatch它的作用是生成提交action对象的dispath函数import logo from ./logo.svg; import ./App.css; import { useSelector,useDispatch } from react-redux; import { decrement, increment, incrementByAmount } from ./store/modules/counterStore; function App() { const counter useSelector((state) state.counter); console.log(value:, counter); const dispatch useDispatch(); return ( div classNameApp button onClick{() dispatch(increment())}/button {counter.value } button onClick{() dispatch(decrement())}-/button /div ); } export default App;3.提交Action传参在调用actionCreator的时候传参参数会被传递到action对象的payload属性上incrementByAmount: (state, action) { state.value action.payload; },import logo from ./logo.svg; import ./App.css; import { useSelector,useDispatch } from react-redux; import { decrement, increment, incrementByAmount } from ./store/modules/counterStore; function App() { const counter useSelector((state) state.counter); console.log(value:, counter); const dispatch useDispatch(); return ( div classNameApp button onClick{() dispatch(increment())}/button {counter.value } button onClick{() dispatch(decrement())}-/button button onClick{() dispatch(incrementByAmount(10))}10/button /div ); } export default App;

相关新闻

Android开发必读经典:16本从入门到内核精通的书籍指南

Android开发必读经典:16本从入门到内核精通的书籍指南

1. Android开发书籍全景指南:从入门到内核级精通的16本必读经典从事Android开发七年多,书架上的技术书籍换了三茬。最近整理工作室时,突然意识到:那些被翻得卷边的纸质书,才是真正陪我度过无数调试夜晚的"老战友&…

2026/7/28 12:08:59 阅读更多 →
Android地图上滑布局实现与ViewDragHelper应用

Android地图上滑布局实现与ViewDragHelper应用

1. 为什么需要地图上滑布局在主流地图类应用中,我们经常看到这样一种交互模式:地图占据屏幕大部分区域,底部有一个可以向上拖拽的面板,面板上展示POI信息、导航路线等详细内容。这种设计完美解决了"既要看地图全貌&#xff0…

2026/7/28 14:57:07 阅读更多 →
工程索赔的分类及常见的施工索赔

工程索赔的分类及常见的施工索赔

工程索赔的分类及常见的施工索赔 工程索赔的分类 (1)工程延期索赔,因为发包人未按合同要求提供施工条件,或者发包人指令工程暂停或不可抗力事件等原因造成工期拖延的,承包人向发包人提出索赔;如果由于承包人原因导致工期拖延,发包人可以向承包人提出索赔;由于非分包人的原…

2026/7/28 10:25:34 阅读更多 →

最新新闻

LangGraph 工作流:权限日志没搞定,Agent 上线就崩?

LangGraph 工作流:权限日志没搞定,Agent 上线就崩?

聊《同样是LangGraph,为什么有的能上线、有的只能演示?》之前,先说一句实在的:别急着背概念,先看它在真实项目里到底解决什么问题。摘要最近大模型应用从 Demo 转向权限、日志和可观测,这个趋势背后是团队对…

2026/7/29 0:38:36 阅读更多 →
万字图文盘点RAG常见的100个核心概念:前 30 个

万字图文盘点RAG常见的100个核心概念:前 30 个

很多同学看了十几篇 RAG 教程,Embedding、Chunk、向量数据库、BM25 单独都认识,连起来却分不清谁先谁后。 因为 RAG 不只是接个向量数据库。前面要处理文档,后面要排序结果、控制上下文,任何一环出问题,答案都会偏。 …

2026/7/29 0:38:36 阅读更多 →
Linux提权实战:从SUID、Capabilities到内核漏洞的系统化攻防指南

Linux提权实战:从SUID、Capabilities到内核漏洞的系统化攻防指南

1. 项目概述:从靶机到实战的提权思维构建最近在VulnHub上通关了几个经典的Linux靶机,发现一个非常有意思的现象:很多初学者在拿到一个低权限shell后,往往会陷入迷茫,不知道下一步该往哪里走。他们可能知道一些零散的提…

2026/7/29 0:38:36 阅读更多 →
【LLM可信性认证标准】:基于ISO/IEC 23894的幻觉量化评估指南(附开源测评套件v2.3)

【LLM可信性认证标准】:基于ISO/IEC 23894的幻觉量化评估指南(附开源测评套件v2.3)

更多请点击: https://codechina.net 第一章:AI 幻觉问题解决 AI 幻觉(Hallucination)指大语言模型在缺乏可靠依据时生成看似合理但事实错误、逻辑矛盾或完全虚构的内容。这类问题在问答、摘要、代码生成等关键场景中可能引发严重…

2026/7/29 0:37:36 阅读更多 →
Java抽象类构造函数?别做梦了,它根本不让new自己

Java抽象类构造函数?别做梦了,它根本不让new自己

1.抽象类处于自上往下的继承层次架构之中, 处在上层位置的类具备更强的通用性, 甚至有可能显得更为抽象。从特定的某种角度去看, 祖先类具有更高的通用性, 它仅仅涵盖一些最为基础的成员, 人们仅仅是把它当作派生其他类的基本类, 而并非用于创建对象。甚至, 你能够仅仅给出方法…

2026/7/29 0:37:36 阅读更多 →
Alaya Lab的研究者如何让AI真正读懂游戏世界的规则

Alaya Lab的研究者如何让AI真正读懂游戏世界的规则

这项由Alaya Lab主导的研究发表于2026年7月,论文编号为arXiv:2607.14076v1,有兴趣深入了解的读者可以通过该编号查询完整论文。你有没有想过,当你在游戏里按下攻击键的那一刻,背后究竟发生了什么?屏幕上的角色不是直接…

2026/7/29 0:37:36 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/28 8:29:16 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/28 5:03:42 阅读更多 →

月新闻