redux的简单用法

1.安装包

npm install @reduxjs/toolkit react-redux -S

2.看看目录结构

3.store的user代码

import { createSlice } from "@reduxjs/toolkit";// 初始状态
let initialState = {count: 1,users: [{name: "zhangzhang",pass: "123456",},],infor: {infor_num: 20,infor_type: "cosplay",infor_name: "GAT5",},
};// 改变状态的方法
let reducers = {changeCount(state, { payload }) {state.count = payload;},
};// 创建为小仓库
const stateSlice = createSlice({name: "user",initialState,reducers,
});// 导出改变状态的方法
export const { changeCount } = stateSlice.actions;
// 导出当前整体仓库
export default stateSlice.reducer;

4.store的index代码

 

// 导入创建库的钩子
import { configureStore } from "@reduxjs/toolkit";// 引入小仓库
import user from "./user";// 合为一个大仓库
const store = configureStore({// 每个reducer代表一个模块的状态管理器reducer: {user,},
});export default store;

使用

挂到indexjs上

import React from "react";
import ReactDOM from "react-dom/client";
import "./index.css";
import App from "./App";
import reportWebVitals from "./reportWebVitals";
import { BrowserRouter } from "react-router-dom";
import { Provider } from "react-redux";
import store from "./store";const root = ReactDOM.createRoot(document.getElementById("root"));
root.render(// BrowserRouter 是history模式<BrowserRouter>{/* // Provider主要配合redux,进行store数据的传递 */}<Provider store={store}><App /></Provider></BrowserRouter>
);reportWebVitals();

在代码里面进行取值使用方法,pages

// 使用方法的话,用从具体的库引用出来
import { changeCount } from "../../store/user"
// useDispatch是进行方法的使用,useSelector是进行取值
import { useDispatch,useSelector } from "react-redux"export default function Home() {const dispatch = useDispatch();let selector = useSelector(store => store.user.count);console.log(selector, '==')// dispatch(changeCount(2))return (<div>hello word</div>)
}

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3014928.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

HW面试经验分享 | 某安全厂商护网二面

某厂商蓝队初级二面分享 所面试的公司&#xff1a;某安全厂商 薪资待遇&#xff1a;待定 所在城市&#xff1a;上海 面试职位&#xff1a;蓝队初级 面试过程&#xff1a;感觉良好&#xff0c;就是有个别的小问题&#xff0c;没有说好。 面试官的问题&#xff1a; 第1个问…

如何选择最佳的机器学习分类模型?基于使用贝叶斯和异步连续减半算法(ASHA)优化的最佳分类模型自动选择方法

目录 一、主要内容&#xff1a; 二、贝叶斯优化算法&#xff1a; 三、异步连续减半优化算法&#xff1a; 四、代码运行效果&#xff1a; 五、代码下载&#xff1a; 一、主要内容&#xff1a; 对于分类问题&#xff0c;不同机器学习模型分类的效果不同&#xff0c;而且在同…

UG NX二次开发(C#)-获取Part中对象创建时的序号(*)

文章目录 1、前言2、UG NX的对象序号讲解3、采用UG NX二次开发或者建模序号4、注意事项1、前言 在UG NX中,我们创建任意一个对象,都会在模型历史中添加一个创建对象的编号,即是对象序号,这个是递增的,当删除中间产生的对象时,其序号会重新按照建模顺序重新排布。今天一个…

libcity笔记:libcity/config/config_parser.py/ConfigParser

1 构造函数 1.1 _parse_external_config 解析外部传入的参数 1.2 _parse_config_file 解析用户提供的config文件的参数 1.3 _load_default_config 从默认配置中加载参数 libcity笔记&#xff1a;参数设置与参数优先级-CSDN博客 1.4 __init_device 初始化设备&#xff08;GPU…

性能测试常见风险以及消减措施

性能测试过程中会遇到各种各样的风险&#xff0c;常见风险以及消减措施有哪些&#xff1f; 一&#xff1a; 时间 一&#xff09;时间相关风险 时间相关风险不仅限于最终用户满意度,尽管这是大多数人首先想到的。时间也是某些与业务和数据相关的风险因素。性能测试可以解决的…

明星中药企业系列洞察(三)丨创吉尼斯全球记录,昆中药如何走出高质量发展之路

中医药是中华民族优秀传统文化的重要组成部分。近百年来&#xff0c;中医药在传承中随科学技术的发展而发展&#xff0c;以中医理论为指导而制成适合防治疾病需要的中药制剂&#xff0c;在配制理论、生产技术、质量控制与合理应用上不断取得新突破&#xff0c;以其不可替代的药…

零售全渠道营销业务链分析,让企业管控能力大幅加强!

对于传统的、规模化的零售快消企业来讲&#xff0c;面临着很大的渠道管理和建设问题&#xff0c;如何尽快实现整个营销体系的全渠道数字化转型是当务之急、重中之重。 面对错综分散的经销商&#xff0c;零售快消企业订货流程会越复杂&#xff0c;加之对门店管理较为粗放&#…

手机短信删除了还能恢复吗?该怎么恢复呢?

在我们的日常生活中&#xff0c;手机短信已经成为我们与他人沟通的重要方式之一。然而&#xff0c;有时候我们会不小心删除了一些重要的短信&#xff0c;这时候就非常希望能够恢复它们。那么&#xff0c;手机短信删除了还能恢复吗&#xff1f;该怎么恢复呢&#xff1f;本文将告…

集中式抄表是什么?什么叫集中式抄表?

1.集中式抄表&#xff1a;简述 集中式抄表是一种现代化、高效率的电力工程、水力发电或燃气计量方法&#xff0c;它改变了传统的人工抄表方式&#xff0c;完成了远程自动化数据收集。这类系统主要由中央服务器、通信系统及安装在用户端智能化表计构成&#xff0c;大大提高了公…

弹性云服务器是什么,为何如此受欢迎

云计算作为当下炙手可热的技术领域&#xff0c;已然成为现代企业不可或缺的核心能力。云服务器作为云计算的基石之一&#xff0c;在这个数字化时代发挥着至关重要的作用。而弹性云服务器&#xff0c;作为云服务器的一种演进形式&#xff0c;更是备受瞩目。 弹性云服务器&#…

文件夹批量重命名,轻松实现简体中文翻译成繁体中文,文件夹批量改名新体验

文件夹的管理和命名显得尤为重要。你是否曾为了给文件夹取一个合适的名字而 绞尽脑汁&#xff1f;是否因为需要批量修改文件夹名而苦恼不已&#xff1f;现在&#xff0c;我们为你带来一款强大的文件夹批量改名工具&#xff0c;不仅能轻松实现简体中文到繁体中文的转换&#xf…

直播录屏怎么录?分享3种方法

随着网络直播的兴起&#xff0c;直播录屏已成为众多网友记录精彩瞬间、分享有趣内容的重要工具。直播录屏不仅能帮助我们回顾和保存直播中的精彩片段&#xff0c;还能为创作者提供更多的素材和灵感。 本文将为大家介绍3种直播录屏的方法&#xff0c;帮助大家能够更好地利用这一…

产品推荐 | 基于Intel (Altera) Cyclone V打造的水星Mercury SA1核心板

01 产品概述 水星Mercury SA1片上系统&#xff08;SoC&#xff09;核心板通过结合基于ARM处理器的SoC FPGA、快速DDR3L SDRAM、eMMC flash、QSPI flash、Gigabit Ethernet PHY和RTC形成了一个高性能嵌入式处理方案&#xff0c;结合了CPU系统的灵活性和FPGA原始的、实时的并行处…

搞定 TS 装饰器,让你写 Node 接口更轻松

前言 亲爱的小伙伴&#xff0c;你好&#xff01;我是 嘟老板。你是否用过 TypeScript 呢&#xff1f;对 装饰器 了解多少呢&#xff1f;有没有实践应用过呢&#xff1f;今天我们就来聊聊 装饰器 的那点事儿&#xff0c;看看它有哪些神奇的地方。 什么是装饰器 咱们先来看一段…

包管理工具npm、cnpm、yarn、NVM

[包]英文单词是package,代表了一组特定功能的源码集合 包管理工具&#xff1a; 管理[包]的应用软件,可以对[包]进行下载安装,更新,删除,上传等操作借助包管理工具,可以快速开发项目,提升开发效率 包管理工具是一个通用的概念,很多编程语言都有包管理工具,所以掌握好包管理工具非…

Error: Maximum response size reached

错误原因复现 请求下载的文件是4g的&#xff0c;postman报错Error: Maximum response size reached 解决办法 Postman设置请求时长和数据大小 Settings&#xff0c;打开设置面板 postman有默认请求时间&#xff0c;正常的postman请求后端少量数据&#xff0c;返回特别快。但…

Mac idea gradle解决异常: SSL peer shut down incorrectly

系统&#xff1a;mac 软件&#xff1a;idea 解决异常: SSL peer shut down incorrectly 查看有没有安装 gradle -v安装 根据项目gradle提示安装版本 brew install gradle7idea的配置 在settings搜索gradle&#xff0c;配置Local installation&#xff0c;选择自己的安装目录…

用标准的GNU/Linux命令替换Alpine上的精简版命令

Alpine Linux 是一个基于 musl libc 和 busybox 的轻量级Linux发行版&#xff0c;busybox 实现了很多常用类Unix命令的精简版&#xff0c;特点是体积很小&#xff0c;舍弃了很多不常用参数&#xff0c;我们简单对比一下标准Linux自带的 date 命令 和 Alpine下默认的 date 命令便…

Vue-组件中的data

一个组件的data选项必须是一个函数。保证每个组件实例&#xff0c;维护独立的一份数据对象。如下图&#xff1a; 组件一旦封装好了&#xff0c;可以使用多次&#xff0c;比如数字框组件使用了三次&#xff1a; 每次创建新的组件实例&#xff0c;都会重新执行一次data函数&#…