在react项目中使用redux和reduxjs/toolkit

本文详细介绍了如何在React项目中使用Redux和@reduxjs/toolkit,包括创建store、创建slice、配置store以及在组件中使用useSelector和useDispatch。作者一步步展示了如何添加状态管理并实现增删功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在react项目中使用redux和reduxjs/toolkit

  1. 使用npx创建项目,创建完成之后安装react-redux@reduxjs/toolkit两个依赖
npx create-react-app test
npm i react-redux @reduxjs/toolkit
  1. 新建一个todoSlice.js文件,创建slice片段(在react中称为slice片段,在vue中称为store)
// 初始化一个redux中的state
import { createSlice } from "@reduxjs/toolkit";

const todoSlice = createSlice({
  name: "chp",
  initialState: {
    todos: [1, 2, 3],
  },
  reducers: {
    addState(state, action) {
      state.todos.push(action.payload);
    },
  },
});

export const { addState } = todoSlice.actions;
export default todoSlice.reducer;
  1. 在项目根目录下(与启动目录index.js同层级)创建一个store.js文件,将写好的todoSlice文件配置进去,这里有一个很重要的东西就是导入的名字todoStore,这个名字是在使用这个store的时候需要传入useSelector钩子函数内的
//加载todo.js中的reducer
import todoStore from "./redux/todoSlice";
import { configureStore } from "@reduxjs/toolkit";
export default configureStore({
  reducer: {
    todoStore,
  },
});
  1. 将store.js配置进启动目录index.js中
import store from './store';
import { Provider } from 'react-redux';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
  <Provider store={store}>
    <App />
  </Provider>
);

redux编写完成,开始使用redux。

  1. 使用redux的时候有两个不能忘记的钩子函数useSelector,useDispatch,useSelector是获取store内定义的状态值的钩子函数,useDispatch是获取store内定义的方法的钩子函数
import "./App.css";
import { useSelector, useDispatch } from "react-redux";
import { addState } from "./redux/todoSlice";
function App() {
  const { todos } = useSelector((state) => state.todoStore);
  const dispatch = useDispatch();
  const add = () => {
    dispatch(addState(todos.length + 1));
  };
  return (
    <div className="App">
      {todos.map((todo) => {
        return <div key={todo}>{todo}</div>;
      })}
      <button onClick={add}>add</button>
    </div>
  );
}

export default App;

React 安装 Redux Redux Toolkit 的步骤如下: 1. **安装Redux**: 首先需要安装Redux库。你可以使用npm或yarn来添加依赖。通过终端或命令行运行以下命令: ```bash npm install redux # 或者如果使用Yarn yarn add redux ``` 2. **安装Redux Toolkit (RTK)**: Redux Toolkit是一个官方推荐的库,它简化了Redux的工作流,包括创建store、action creators、reducers等。安装时同样使用npm或yarn: ```bash npm install @reduxjs/toolkit # 或者Yarn yarn add @reduxjs/toolkit ``` 安装完成后,你可以在React项目中创建Redux store,并配置基本的reduceractions。例如,在`src/reducers/index.js`中: ```javascript import { createSlice } from '@reduxjs/toolkit'; // 创建一个简单的slice const counterSlice = createSlice({ name: 'counter', initialState: { count: 0 }, reducers: { increment: (state) => ({ count: state.count + 1 }), decrement: (state) => ({ count: state.count - 1 }), }, }); export default counterSlice.reducer; ``` 然后在`src/store.js`里创建并结合应用这个store: ```javascript import { configureStore } from '@reduxjs/toolkit'; import counterReducer from './reducers'; const store = configureStore({ reducer: { counter: counterReducer, }, }); export default store; ``` 最后,在你需要的地方可以使用`useSelector`` useDispatch` hooks从store中获取数据触发actions: ```jsx import React from 'react'; import { useSelector, useDispatch } from '@reduxjs/toolkit'; function Counter() { const count = useSelector((state) => state.counter.count); const dispatch = useDispatch(); return ( <div> <h1>Count: {count}</h1> <button onClick={() => dispatch(counterSlice.actions.increment())}>+</button> <button onClick={() => dispatch(counterSlice.actions.decrement())}>-</button> </div> ); } export default Counter; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值