当前位置:首页 > React

redux如何在react使用

2026-01-24 16:01:56React

安装 Redux 相关依赖

在 React 项目中使用 Redux 需要安装以下核心库:

  • redux:Redux 核心库。
  • react-redux:用于连接 Redux 和 React。
  • @reduxjs/toolkit(推荐):Redux 官方工具集,简化配置和开发流程。

通过 npm 或 yarn 安装:

npm install redux react-redux @reduxjs/toolkit

创建 Redux Store

使用 @reduxjs/toolkitconfigureStore 创建 Store:

redux如何在react使用

import { configureStore } from '@reduxjs/toolkit';
import counterReducer from './features/counterSlice';

const store = configureStore({
  reducer: {
    counter: counterReducer,
  },
});

export default store;

创建 Slice

Slice 是 Redux 中管理状态逻辑的模块。通过 createSlice 定义:

import { createSlice } from '@reduxjs/toolkit';

const counterSlice = createSlice({
  name: 'counter',
  initialState: { value: 0 },
  reducers: {
    increment: (state) => {
      state.value += 1;
    },
    decrement: (state) => {
      state.value -= 1;
    },
  },
});

export const { increment, decrement } = counterSlice.actions;
export default counterSlice.reducer;

在 React 中连接 Store

通过 Provider 将 Store 注入 React 应用:

redux如何在react使用

import React from 'react';
import ReactDOM from 'react-dom';
import { Provider } from 'react-redux';
import App from './App';
import store from './store';

ReactDOM.render(
  <Provider store={store}>
    <App />
  </Provider>,
  document.getElementById('root')
);

在组件中使用 Redux

使用 useSelectoruseDispatch 钩子访问状态和触发动作:

import React from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { increment, decrement } from './features/counterSlice';

function Counter() {
  const count = useSelector((state) => state.counter.value);
  const dispatch = useDispatch();

  return (
    <div>
      <button onClick={() => dispatch(increment())}>+</button>
      <span>{count}</span>
      <button onClick={() => dispatch(decrement())}>-</button>
    </div>
  );
}

export default Counter;

异步操作处理

使用 createAsyncThunk 处理异步逻辑(如 API 调用):

import { createAsyncThunk, createSlice } from '@reduxjs/toolkit';

export const fetchData = createAsyncThunk('data/fetch', async () => {
  const response = await fetch('https://api.example.com/data');
  return response.json();
});

const dataSlice = createSlice({
  name: 'data',
  initialState: { data: null, status: 'idle' },
  extraReducers: (builder) => {
    builder
      .addCase(fetchData.pending, (state) => {
        state.status = 'loading';
      })
      .addCase(fetchData.fulfilled, (state, action) => {
        state.status = 'succeeded';
        state.data = action.payload;
      });
  },
});

export default dataSlice.reducer;

开发工具集成

启用 Redux DevTools 扩展(默认已集成在 @reduxjs/toolkit 中):

const store = configureStore({
  reducer: {
    // ...reducers
  },
  devTools: process.env.NODE_ENV !== 'production',
});

标签: 如何在redux
分享给朋友:

相关文章

如何理解react-redux

如何理解react-redux

React-Redux 的核心概念 React-Redux 是 React 和 Redux 之间的官方绑定库,用于在 React 应用中高效管理全局状态。它通过提供 Provider 组件和 conn…

如何在react中使用VUE

如何在react中使用VUE

在React中直接使用Vue组件通常需要借助第三方工具或库,因为两者设计理念和渲染机制不同。以下是几种可行的方案: 通过微前端架构集成 微前端框架如single-spa或qiankun可以同时加载R…

react组件如何在vue引用

react组件如何在vue引用

在Vue中引用React组件的方法 要将React组件集成到Vue项目中,可以通过以下两种主要方式实现: 使用vue-react-wrapper库 安装vue-react-wrapper库,该库专门…

react如何在组件外面使用

react如何在组件外面使用

在 React 组件外部使用状态或方法 通过 React 的 useRef 和 forwardRef 结合,可以将组件内部的方法暴露给外部。创建一个 ref 并传递给组件,组件通过 useImpera…

如何在react中使用redux

如何在react中使用redux

在React中使用Redux的步骤 安装必要的依赖 确保项目中已安装redux和react-redux库。可以通过以下命令安装: npm install redux react-redux 创建Re…

如何在idea中创建react类

如何在idea中创建react类

在 IntelliJ IDEA 中创建 React 类 确保已安装 Node.js 和 npm(或 yarn)。IntelliJ IDEA 需安装插件 Node.js 和 JavaScript and…