redux的简单用法

news2024/11/24 7:34:31

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://www.coloradmin.cn/o/1649356.html

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

相关文章

CSS中文本样式(详解网页文本样式)

目录 一、Text介绍 1.概念 2.特点 3.用法 4.应用 二、Text语法 1.文本格式 2.文本颜色 3.文本的对齐方式 4.文本修饰 5.文本转换 6.文本缩进 7.color&#xff1a;设置文本颜色。 8.font-family&#xff1a;设置字体系列。 9.font-size&#xff1a;设置字体大小。…

劝退计算机?CS再过几年会没落!?

事实上&#xff0c;未来计算机不仅不会没落&#xff0c;国家还会大力发展 只不过大家认为的计算机就是什么Java web&#xff0c;真正的计算机行业是老美那样的&#xff0c;涉及到方方面面&#xff0c;比如&#xff1a; web&#xff0c;图形学&#xff0c;Linux系统开发&#…

【第11章】spring-mvc默认转换器

文章目录 前言一、DateFormatter二、NumberFormat1. NumberBean2. number.jsp 三、ConverterController四、执行结果总结 前言 【第6章】spring类型转换器 此章节内容为spring类型转换器内容扩展,使用spring提供的注解增强转换器功能,让date和int等类型转换更加方便。 一、Da…

利用生成式AI重新构想ITSM的未来

对注入 AI 的生成式 ITSM 的需求&#xff0c;在 2023 年 Gartner AI 炒作周期中&#xff0c;生成式 AI 达到预期值达到顶峰后&#xff0c;三分之二的企业已经将生成式 AI 集成到其流程中。 你问为什么这种追求&#xff1f;在预定义算法的驱动下&#xff0c;IT 服务交付和管理中…

PM说|还有不会DISC的项目经理?

DISC行为模型是一种常用于职场中的人际交往工具&#xff0c;它通过对个体的行为特点进行分类和分析&#xff0c;帮助人们更好地理解自己和他人的行为方式&#xff0c;从而更加高效地进行沟通和合作。在项目管理过程中&#xff0c;多方沟通是必备工作技能&#xff0c;如何利用DI…

CP AUTOSAR之CANXLDriver详细说明(正在更新中)

本文遵循autosar标准&#xff1a;R22-11 1 简介及功能概述 本规范描述了AUTOSAR 基础软件模块CAN XL 驱动程序的功能、API和配置。   本文档的基础是[1,CiA610-1]和[2,CiA611-1]。假设读者熟悉这些规范。本文档不会再次描述CAN XL 功能。   CAN XL 驱动程序是最低层的一部…

基于TF的简易关键字语音识别

⚠申明&#xff1a; 未经许可&#xff0c;禁止以任何形式转载&#xff0c;若要引用&#xff0c;请标注链接地址。 全文共计10182字&#xff0c;阅读大概需要10分钟 &#x1f308;更多学习内容&#xff0c; 欢迎&#x1f44f;关注&#x1f440;【文末】我的个人微信公众号&#…

淤地坝安全监测预警系统解决方案

一、方案背景 淤地坝是黄土高原地区人民群众长期同水土流失斗争实践中创造的一种行之有效的水土保持工程措施&#xff0c;在拦泥保土、减少入黄泥沙、防洪减灾、淤地造田、巩固退耕还林&#xff08;草&#xff09;、保障生态安全、促进粮食生产和水资源合理利用及经济社会稳定发…

自动驾驶学习1-超声波雷达

1、简介 超声波雷达&#xff1a;利用超声波测算距离的雷达传感器装置&#xff0c;通过发射、接收 40kHz、48kHz或 58kHz 频率的超声波&#xff0c;根据时间差测算出障碍物距离&#xff0c;当距离过近时触发报警装置发出警报声以提醒司机。 超声波&#xff1a;人耳所不能听到的…

HG-KN73J-S100 三菱伺服电机(750W型)

HG-KN73J-S100属于三菱MR-JE系列伺服系统&#xff0c;可以与伺服驱动器MR-JE-70A、MR-JE-70B、MR-JE-70C配套使用。HG-KN73J-S100完全替换HF-KN73J-S100。HG-KN73J-S100规格、HG-KN73J-S100参数。 HG-KN73J-S100参数说明&#xff1a;MR-JE低惯性/小容量、0.75Kw三菱伺服电机HG-…

Web实操(6),基础知识学习(24~)

1.[ZJCTF 2019]NiZhuanSiWei1 &#xff08;1&#xff09;进入环境后看到一篇php代码&#xff0c;开始我简单的以为是一题常规的php伪协议&#xff0c;多次试错后发现它并没有那么简单&#xff0c;它包含了基础的文件包含&#xff0c;伪协议还有反序列化 &#xff08;2&#x…

uniapp文本框上下滚动问题

一个基本需求&#xff0c;textarea标签没有办法通过手拖动的方式进行滚动&#xff0c;当文字超出其容量后&#xff0c;想要编辑上面被遮挡部分的文字这边难以点到&#xff0c;电脑可以鼠标滚轮&#xff0c;但手机需要拖动但无效&#xff1a; 下面提供了我的解决思路&#xff1a…

IP规划案例

整个OSPF环境IP基于172.16.0.0/16划分 172.16.0.0/16 先分成2个网段&#xff08;OSPF RIP&#xff09;&#xff0c;借1位172.16.0.0/17 ---OSPF 再按区域划分&#xff08;5个区域&#xff09;&#xff0c;借3位 172.16.0.0/20 ---Area 0 三个环回 MGRE 4个网…

【Vue】pinia

pinia 官网:https://pinia.vuejs.org/zh/ 搭建 pinia 环境 第一步&#xff1a;npm install pinia --save 第二步&#xff1a;操作src/main.ts import { createApp } from vue import App from ./App.vue/* 引入createPinia&#xff0c;用于创建pinia */ import { createP…

VALSE 2024 Tutorial内容总结--开放词汇视觉感知

视觉与学习青年学者研讨会&#xff08;VALSE&#xff09;旨在为从事计算机视觉、图像处理、模式识别与机器学习研究的中国青年学者提供一个广泛而深入的学术交流平台。该平台旨在促进国内青年学者的思想交流和学术合作&#xff0c;以期在相关领域做出显著的学术贡献&#xff0c…

技术速递|使用 .NET 为 Microsoft AI 构建可扩展网关

作者&#xff1a;Kara Saucerman 排版&#xff1a;Alan Wang Microsoft AI 团队构建了全面的内容、服务、平台和技术&#xff0c;以便消费者在任何设备上、任何地方获取他们想要的信息&#xff0c;并为企业改善客户和员工的体验。我们的团队支持多种体验&#xff0c;包括 Bing、…

RVM(相关向量机)、CNN_RVM(卷积神经网络结合相关向量机)、RVM-Adaboost(相关向量机结合Adaboost)

当我们谈到RVM&#xff08;Relevance Vector Machine&#xff0c;相关向量机&#xff09;、CNN_RVM&#xff08;卷积神经网络结合相关向量机&#xff09;以及RVM-Adaboost&#xff08;相关向量机结合AdaBoost算法&#xff09;时&#xff0c;每种模型都有其独特的原理和结构。以…

call, apply , bind 区别详解 及 实现购物车业务开发实例

call 方法&#xff1a; 原理 call 方法允许一个对象借用另一个对象的方法。通过 call&#xff0c;你可以指定某个函数运行时 this 指向的上下文。本质上&#xff0c;call 改变了函数运行时的作用域&#xff0c;它可以让我们借用一个已存 在的函数&#xff0c;而将函数体内的 th…

关于执行CLAM的代码的一些需要记录的点

文章链接&#xff1a;[2004.09666] Data Efficient and Weakly Supervised Computational Pathology on Whole Slide Images (arxiv.org) 代码链接&#xff1a;GitHub - mahmoodlab/CLAM: Data-efficient and weakly supervised computational pathology on whole slide images…

VALSE 2024 Workshop报告分享┆Open-Sora Plan视频生成开源计划——进展与不足

2024年视觉与学习青年学者研讨会&#xff08;VALSE 2024&#xff09;于5月5日到7日在重庆悦来国际会议中心举行。本公众号将全方位地对会议的热点进行报道&#xff0c;方便广大读者跟踪和了解人工智能的前沿理论和技术。欢迎广大读者对文章进行关注、阅读和转发。文章是对报告人…