如何在 React Redux 中创建 Store?

React Redux 是一个 JavaScript 库,旨在用于高效地在 React 应用程序中创建和维护状态。

在这里,React Redux 通过创建一个 redux store 来解决这个问题,该 store 负责存储状态,并提供方法让我们可以直接在任何组件内部使用状态,或者以规定的方式操作状态。

目录

  • Redux Toolkit
  • 如何在 ReactJS 中构建 Redux Store 并管理复杂状态
  • 使用 Redux Provider 包裹 App
  • 创建 Redux Store
  • 创建 Redux 状态切片 Reducer
  • 在 Store 中注册状态切片
  • 在 React 组件中使用 Redux 状态

Redux Toolkit

Redux Toolkit 就像是 Redux 的一层包装,并封装了其必要的功能。Redux Toolkit 非常灵活,为大型应用程序提供了一种简单的 store 创建方式。它遵循 SOPE 原则,这意味着它是简单的、固执己见的(Opinionated,指有约定俗成的规范)、强大的且有效的。

如何在 ReactJS 中构建 Redux Store 并管理复杂状态

在安装了所需的模块之后,让我们来看看具体的步骤:

  • 首先,利用 Redux Toolkit 提供的 INLINECODEf56536b0 方法在 INLINECODE2cb9aeb1 文件中创建一个 store。这将作为我们的 store,但我们尚未创建 reducers。
  • 现在,使用 Provider 将整个应用程序包裹起来,这将把我们创建的 store 提供给应用程序。
  • 现在,为 store 创建 slices。我们使用 Toolkit 中的 createSlice 方法来创建一个 slice,它包含..
  • Slice 的名称
  • 初始状态
  • Reducer,其中包含 action
  • 导出 reducer 和 actions。
  • 在 store 内部导入 reducer 以将其注册。
  • 现在是时候使用它了。使用 hook 在组件内部选择状态,并导入相应的 actions。
  • 当需要更新时,dispatch 该 action,这将更新 store 内部以及组件内部的状态。

创建 React 应用程序并安装模块的步骤:

步骤 1: 使用以下命令创建一个 React 应用程序:

npx create-react-app redux_store

步骤 2: 创建项目文件夹(即 project_name)后,使用以下命令移动到该文件夹:

cd redux_store

步骤 3: 安装 React Redux 模块:

npm install @reduxjs/toolkit react-redux

项目结构:

!项目结构截图

package.json 文件中更新后的依赖项将如下所示。

"dependencies": {
    "@reduxjs/toolkit": "^2.2.2",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-redux": "^9.1.0",
    "react-scripts": "5.0.1",
    "web-vitals": "^2.1.4"
  }

使用 Redux Provider 包裹 App

  • 在 INLINECODEfe1c031e 中,从 INLINECODE2f791010 导入 store,并从 react redux 导入 provider。

语法:


    
 

创建 Redux Store

  • 现在创建一个 store.js 文件,并在其中创建一个 store。
  • 同时将其导出,目前它不包含任何 reducer,我们会在创建 reducers 后将其注册。

语法:

export const store = configureStore({
  reducer: {
  },
})

创建 Redux 状态切片 Reducer

  • 现在创建一个 slice,这包括 reducer 和初始状态。此外,名称应该是唯一的。要创建 slice,我们需要创建另一个文件 slice.js
  • 之后,导出 slice reducer 和 actions。

语法:

export const counterSlice = createSlice({
  name: ‘ ‘,
  initialState:    ,
  reducers: {
action_name: (state) => update the state;
  },
})

在 Store 中注册状态切片

  • 只需在 store 内部导入 slice reducer 并将其注册到 store 中。

语法:

reducer: {
    counter: reducer_Name,
 }

在 React 组件中使用 Redux 状态

  • 现在,使用 hook 在组件内部选择状态:

语法:

const state = useSelector( ( state ) => state.slice_name.value )

现在,为了更新状态,我们必须 dispatch 之前定义的 actions。

const dispatch = useDispatch( )
dispatch(action_name( ) )

解释:

  • 在下面,我们可以看到两个按钮:增加和减少。
  • 这些按钮将会向 store dispatch 增加和减少 action。
  • store 内部的 reducer 将根据 action 更新计数器的值。这里的计数器就是一个状态。
  • 这个状态在整个应用程序中可用,并且可以从任何组件进行操作。

示例

JavaScript


import ‘./App.css‘;

import {

useSelector,

useDispatch

} from ‘react-redux‘

import {

decrement,

increment

} from ‘./store/slices/counterSlice‘

function App() {

const count = useSelector((state) => state.counter.value)

const dispatch = useDispatch()

return (

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/22594.html
点赞
0.00 平均评分 (0% 分数) - 0