第四章 react-redux,@reduxjs/toolkit依赖,学习

redux系列文章目录

第一章 简单学习redux,单个reducer

第二章 简单学习redux,多个reducer

第三章 redux和react-redux,@reduxjs/toolkit依赖结合使用

第五章 两张图告诉你redux常使用的api有哪些

前言

本章将使用react-redux,@reduxjs/toolkit依赖创建一个简单cout计数页面

准备工作

准备一个react框架的环境

bash 复制代码
npx create-react-app  react-redux-template

下载依赖

bash 复制代码
npm i react-redux @reduxjs/toolkit

启动命令

bash 复制代码
npm start

准备目录文件,

页面:src/pages/count/index.js

redux的存放:src/redux/store.js和src/redux/counterReducer.js

详情代码

store.js

bash 复制代码
import { configureStore } from "@reduxjs/toolkit";
import countReducer from "./countReducer";
const store = configureStore({
  reducer: {
    counter: countReducer,
  },
})

export default store;

counterReducer.js

bash 复制代码
import { createSlice } from "@reduxjs/toolkit";

const countSlice = createSlice({
  name: "counter",
  //这里initialState一定到放对象object,不然报错
  initialState: {value: 0},
  reducers: {
    increment: (state) => {
        state.value +=1
    },
    decrement: (state) => {
        state.value-=1
    }
  },
}
)
export const {increment, decrement} = countSlice.actions
export default countSlice.reducer

count/index.js

bash 复制代码
import React from 'react'
import { useSelector, useDispatch } from 'react-redux'
import { increment, decrement } from '../../redux/countReducer'
export default function CountPage() {
    const count = useSelector(state => state.counter.value)
    const dispatch = useDispatch()

    return (
        <div>
            <br />
            <br />count:{count}
            <br />
            <button onClick={() => {
                dispatch(increment())
            }}>加+1</button>
            &nbsp;
            <button onClick={() => { dispatch(decrement()) }}>减-1</button>

        </div>
    )
}

src/index.js

bash 复制代码
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
// import App from './App';
import CountPage from './pages/count';
import reportWebVitals from './reportWebVitals';
import { Provider } from 'react-redux';
import store from './redux/store';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <React.StrictMode>
    <Provider store={store}>
    <CountPage />
    </Provider>
  </React.StrictMode>
);

reportWebVitals();

提示:<Provider>很重要,引入store,这样整个应用都可以使用store相关hooks拿取数据

效果

react-redux存储状态

相关推荐
Alice-YUE17 分钟前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
北山有鸟1 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu202510011 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
是上好佳佳佳呀2 小时前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记
qeen872 小时前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
CDN3602 小时前
排查实录:网站偶发502/504错误?360CDN回源超时配置与日志分析技巧
前端·数据库
lizhihai_992 小时前
股市学习心得-六张分时保命图
大数据·人工智能·学习
之歆2 小时前
Day07_CSS盒子模型 · 样式继承 · 用户代理样式
前端·css
nashane3 小时前
HarmonyOS 6学习:应用签名文件丢失处理与更新完全指南
学习·华为·harmonyos·harmonyos 5
DanCheOo3 小时前
AI 应用的安全架构:Prompt 注入、数据泄露、权限边界
前端·人工智能·prompt·安全架构