首页 > 其他分享 >react中redux基本使用

react中redux基本使用

时间:2024-04-08 17:44:05浏览次数:19  
标签:基本 count const react state import redux store

1. 安装 

npm install @reduxjs/toolkit react-redux

2.创建store目录

 3. 创建counterStore.js

// 使用RTK创建store, createSlice 创建reducer的切片
import {createSlice } from "@reduxjs/toolkit";
const counterSlice = createSlice({ // 需要一个配置对象作为参数,通过对象的不同属性来指定它的配置
  name:'counter', // 用来自动生成 action 中的 type
  initialState:{ // state的初始值
    count:0
  },
  // 指定state的各种操作,直接在对象中添加方法
  reducers:{
    inscrement: state => { // state是一个代理对象,可直接修改
      state.count ++
    },
    decrement: state => {
        state.count --
    }
  }
})
// 切片对象会自动的帮助我们生成action
export const { inscrement,decrement } = counterSlice.actions
// 导出 reducer
export default counterSlice.reducer

  3. store/index.js

import { configureStore } from "@reduxjs/toolkit";
import counterReducer from './modules/counterStore'

// 创建store对象
const store = configureStore({
    reducer:{
      counter:counterReducer
    }
  })
  export default store

  4. 在src/index.js文件中如下

import { 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>
);

  5. 在组件中使用

import { useSelector,useDispatch } from "react-redux"
import{inscrement,decrement} from './store/modules/counterStore'


  // useSelector() 用来加载state中的数据
  const {count} = useSelector(state => state.counter)
  // 通过useDispatch() 来获取派发器对象
  const dispatch = useDispatch()

      <div>
          store count: {count} 
          <button onClick={()=>dispatch(inscrement())}> ++</button>
          <button onClick={()=>dispatch(decrement())}>--</button>
        </div>

  

 

标签:基本,count,const,react,state,import,redux,store
From: https://www.cnblogs.com/jlyuan/p/18121858

相关文章

  • 交换机的基本原理与配置_实验案例二:交换机的基本配置
    1、实验环境如图5.18所示、两台交换机互连,并与四台计算机连接在一起,设备之间接口的连接情况如表5-4所示。图5-18实验案例二示意图表5-4设备之间接口的连接情况设备接口接口设备SW1Fa0/24<————>Fa0/24SW2SW1Fa0/1<————>主机ASW1Fa0/2<————>主机BSW2Fa0/1<......
  • Linux基本命令入门详解
    Linux基本命令是Linux系统操作的基础,掌握这些命令对于初学者来说至关重要。下面将详细介绍一些常用的Linux基本命令,并附上实际例子。一、目录操作命令pwd:显示当前所在的目录路径。例子:在终端中输入pwd,将显示当前用户所在的目录路径,如/home/user。cd:切换目录。例子:输......
  • [React] Using key prop to reset component to avoid useEffect hook
    ThecomponentusinguseEffectwhichisnotnecessary:functionTopicEditor({selectedTopicId}){const[enteredNote,setEnteredNote]=useState('');constselectedTopic=DUMMY_TOPICS.find(topic=>topic.id===selectedTopicId)......
  • 全栈的自我修养 ———— react路由两种传参方法
    react路由传参1、传统传参跳转前:跳转后:结果:2、配置传参跳转前:配置routes:跳转后:结果:1、传统传参跳转前:import{useNavigate}from"react-router-dom";<divclassName='login'onClick={()=>navigator('/public/login?id=1')}> <div......
  • 全栈的自我修养 ———— react router6默认二级路由配置?嵌套时候如何实现默认导航
    在组件嵌套时候小编定义了一个共同组件于/public地址下,小编发现如果直接访问public是只有外部组件的页面,小编目标是访问public时候直接访问index页面,小编找了很多资料最终自己使出来了一个办法如下!!小编自己发现的后来查找到的小编自己发现的即把{pat......
  • 全栈的自我修养 ———— react未知地址默认导航至404页面
    方法1在根目录上添加一个errorElement{path:'/',element:<Navigateto="/public/index"replace/>,errorElement:<div>errorPage</div>},方法2{path:'*',element:<div>errorPage</di......
  • MPLS VPN基本知识
    MPLSVPN基本1、VPN中设备的角色        1.1CE:CustomEdge,直接与服务商相连的用户设备。(企业用户的网络设备:RTA,RTB,RTF,RTG)        1.2PE:ProviderEdgeRouter,指骨干网上的边缘路由器,与CE相连,主要负责VPN业务的接入。(运营商的设备:RTC,RTE)        1......
  • React中的Hooks---useEffect
    简介什么是ReactHooksReactHooks是在React16.8版本中引入的一项重大特性,旨在解决函数组件在复杂场景下的状态管理和生命周期问题。它们允许在不编写类组件的情况下使用state、生命周期方法等功能,使得函数组件更加简洁、易于理解和复用。作为ReactHooks的核心成员之一,useEf......
  • 学习笔记445—白盒测试用例设计方法(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组
    白盒测试用例设计方法(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖、基本路径覆盖语句覆盖:每条语句至少执行一次。判定覆盖:每个判定的所有可能结果至少出现一次。(又称“分支覆盖”)条件覆盖:每个条件的所有可能结果至少执行一次。判定/条件覆盖:一个判定中的每......
  • 狂神说Java Web学习笔记_Java Web基本概念
    JavaWeb基本概念静态Web动态WebWeb服务器技术讲解ASPPHPJSP/ServletB/SC/SWeb服务器TomcatTomcat实际运行JSP页面和ServletIISTomcat详解Tomcat目录结构分析配置server.xml是服务器核心配置文件,在这里可以设置端口号、设置域名或IP、默认加载的项目、请求编......