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

在react中 使用redux

1.安装redux

 npm install @reduxjs/toolkit react-redux

2.创建切片模块化数据

在Src目录下创建store目录,创建moude目录 创建tab.js

import { createSlice } from '@reduxjs/toolkit';
const tabSlice = createSlice({name: 'tab',initialState: {Collapse: false,},reducers: {setCollapse:(state,action)=>{state.Collapse = !state.Collapse}}
})
export const {setCollapse} = tabSlice.actions
export default tabSlice.reducer

3.创建store

在store目录下创建index.js

import { configureStore } from '@reduxjs/toolkit';
import TabData from './modules/tab.js'
export default configureStore({reducer: {Tab:TabData}
})

4.全局注册redux

src/inedx.js

import {Provider} from 'react-redux'
import store from './store'root.render(<React.StrictMode><Provider store={store}><App /></Provider></React.StrictMode>
);

 5.在页面获取展示数据

import { useSelector } from 'react-redux';const showMenu = useSelector((state) => state.Tab.Collapse);
//  state.Tab.Collapse
// Tab是reducer里定义的   Collapse 是initialState 里定义的

6.修改数据

import {useDispatch} from 'react-redux'
//实例化useDispatch
const dispatch = useDispatch()dispatch(setCollapse())
//setCollapse 是之前定义修改数据的方法

完整代码

import React from 'react';
import { Layout,Button,Avatar,Dropdown } from 'antd';
import './index.css';
import { MenuFoldOutlined } from '@ant-design/icons';
import {useDispatch} from 'react-redux'
import {setCollapse} from '../../../../store/modules/tab'
const { Header } = Layout;
const url = 'https://gw.alipayobjects.com/zos/rmsportal/KDpgvguMpGfqaHPjicRK.svg';
const ComHeader = ({showMenu2}) => {const dispatch = useDispatch()const isShow = () => {dispatch(setCollapse())}const items = [{key: '1',// eslint-disable-next-line jsx-a11y/anchor-is-validlabel: (<a>个人中心</a>),},{key: '2',// eslint-disable-next-line jsx-a11y/anchor-is-validlabel: (<a onClick={()=>logout}>退出</a>),},];return (<Header className='header-container'><Button type="text" icon={<MenuFoldOutlined></MenuFoldOutlined>} style={{color: 'white',fontSize:'18px'}} onClick={()=>{isShow()}}></Button><Dropdown menu={{ items }}><Avatar src={<img src={url} alt="avatar" />} /></Dropdown></Header>)
}
export default ComHeader

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 2024年最新软件测试学习路线图(从入门到精通)
  • 利用长度选择器优化Prompt示例选择:提升AI对话效率
  • python实现多个pdf文件合并
  • docker镜像结构
  • pikachu下
  • Redis常用操作及springboot整合redis
  • 监听html元素是否被删除,删除之后重新生成被删除的元素
  • Django_Vue3_ElementUI_Release_004_使用nginx部署
  • C编程控制PC蜂鸣器
  • 【乐企-业务篇】开票前置校验服务-规则链服务接口实现(纳税人基本信息)
  • dedecms(四种webshell姿势)、aspcms webshell漏洞复现
  • Leetcode 144. 二叉树的前序遍历(Easy)
  • JZ2440开发板——S3C2440的UART的使用
  • STM32启用FPU浮点运算
  • MVCC机制解析:提升数据库并发性能的关键
  • JavaScript 如何正确处理 Unicode 编码问题!
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • ECMAScript入门(七)--Module语法
  • es6(二):字符串的扩展
  • JavaScript的使用你知道几种?(上)
  • JS题目及答案整理
  • js作用域和this的理解
  • Python代码面试必读 - Data Structures and Algorithms in Python
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • react 代码优化(一) ——事件处理
  • SAP云平台里Global Account和Sub Account的关系
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 服务器从安装到部署全过程(二)
  • 聊聊flink的BlobWriter
  • 码农张的Bug人生 - 见面之礼
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 设计模式走一遍---观察者模式
  • 手机端车牌号码键盘的vue组件
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • ​configparser --- 配置文件解析器​
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​linux启动进程的方式
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #pragma multi_compile #pragma shader_feature
  • $NOIp2018$劝退记
  • (7) cmake 编译C++程序(二)
  • (C语言)共用体union的用法举例
  • (附源码)springboot 校园学生兼职系统 毕业设计 742122
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (论文阅读30/100)Convolutional Pose Machines
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (实战篇)如何缓存数据
  • (四)activit5.23.0修复跟踪高亮显示BUG
  • .Net 8.0 新的变化
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .Net Core缓存组件(MemoryCache)源码解析