前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >React Js 中创建和使用 Redux Store

React Js 中创建和使用 Redux Store

作者头像
Jimmy_is_jimmy
发布2023-08-11 16:27:20
2300
发布2023-08-11 16:27:20
举报
文章被收录于专栏:call_me_Rcall_me_R

本文,我们将学习在 React 应用中怎么创建 Redux Store。同时,我们将分享怎么使用 Redux store 去管理复杂的 states

此外,我们将学习使用 toolkit module 来创建一个 slice state

Redux 是一个很受欢迎且开源的 JavaScript 库,用来管理应用的状态。

ReduxReact 赋能,并允许你创建用户界面。React ReduxReact 官方为 Redux 绑定使用的。

Redux 提供了一个存储,我们可以使用 Provider 组件将其集成到 React 中。它允许你从 Redux Store 中读取数据并将 Actions 分发到 Store 中以更新状态。

创建 React 应用

打开控制台,输入下面的命令行,来安装 create-react-app 工具:

代码语言:javascript
复制
npm install create-react-app --global

现在,我们需要执行给定的命令行以创建一个新的 react 应用。

代码语言:javascript
复制
npx create-react-app react-demo

然后,进入该项目:

代码语言:javascript
复制
cd react-demo

安装 React Redux Module

为了创建一个 redux store,我们将同时安装 react-reduxredux toolkit

代码语言:javascript
复制
npm install react-redux @reduxjs/toolkit

使用 Redux Provider 包裹应用

React Redux 提供了一个 Provider 组件。它在 React 应用程序中增加了 Redux store, 并允许该 store 在整个 React 应用中可用。

我们导入 redux store 组件,然后添加到 Provider 组件中。

src/index.js 文件中添加下面的代码:

代码语言:javascript
复制
import React from 'react';
import ReactDOM from 'react-dom/client';
import './index.css';
import App from './App';
import { Provider } from 'react-redux';
import { store } from './store/index';

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

创建 Redux Store

src 目录中,我们创建名为 store 文件夹,然后创建一个名为 index.js 文件。

代码语言:javascript
复制
import { configureStore } from '@reduxjs/toolkit';
import counterReducer from '../reducers/counterSlice';

export default configureStore({
  reducer: {
    counter: ,
  },
});

configureStore():包装 createStore 以提供简化的配置选项和良好的默认值。

它会自动添加或者组合你的 slice reducers,并且添加你提供的任何 Redux 中间件。它默认包含 redux-thunk 并允许使用 Redux DevTools 扩展。

创建 Redux State Slice Reducer

接着,创建 reducers/ 文件夹,然后创建名为 counterSlice.js 文件并添加给定的代码:

代码语言:javascript
复制
import { createSlice } from '@reduxjs/toolkit'
export const counterSlice = createSlice({
  name: 'counter',
  initialState: {
    value: 0,
  },
  reducers: {
    increment: (state) => {
      state.value += 1
    },
    decrement: (state) => {
      state.value = state.value - 1
    },
  },
})
export const { increment, decrement } = counterSlice.actions
export default counterSlice.reducer

**createSlice()**:接收一个包含 reducer 函数、slice 名称和初始状态值的 state 对象,并且自动生成相应的 action 类型的 slice reducer

在 Store 中注册 State Slice

在这一步中,我们将添加 slice reducercounter 属性中。在 store/index.js 文件中插入该代码。

代码语言:javascript
复制
import { configureStore } from '@reduxjs/toolkit'
import counterReducer from '../reducers/counterSlice'
export default configureStore({
  reducer: {
    counter: counterReducer,
  },
})

在 React 组件中使用 Redux State

打开 App.js 文件,然后添加下面的代码。在这个文件中,我们将向你展示如何在 React 组件中使用 React Redux store

代码语言:javascript
复制
import '../node_modules/bootstrap/dist/css/bootstrap.min.css'
import './App.css'
import { useSelector, useDispatch } from 'react-redux'
import { increment, decrement } from './reducers/counterSlice'
function App() {
  const count = useSelector((state) => state.counter.value)
  const dispatch = useDispatch()
  return (
    <div className="App container mt-5 text-center">
      <h2 className="mb-3">React Js Redux Store with Slice State Examle</h2>
      <p className="h1">{count}</p>
      <button
        onClick={() => {
          dispatch(increment())
        }}
        className="me-2 btn btn-primary"
      >
        Increment
      </button>
      <button
        onClick={() => {
          dispatch(decrement())
        }}
        className="me-2 btn btn-danger"
      >
        Decrement
      </button>
    </div>
  )
}
export default App

在浏览器中查看应用

该步,我们将向你展示如何运行开发环境服务。

代码语言:javascript
复制
npm start

上面的命令行执行后,通过下面给定的 url 进行测试。

代码语言:javascript
复制
http://localhost:3000
react-redux.jpeg
react-redux.jpeg

总结

在这个教程中,我们已经学会在 React 应用中如何通过 React ReduxRedux Toolkit 设置 redux store

Redux 通过单向数据流模型来管理 React 中的数据。React ReduxReact 中很容易实现。理想情况下,它订阅 Redux store 并检查组件的数据是否发生更改,然后重新渲染组件。

pexels-mikael-blomkvist-4151865.jpg
pexels-mikael-blomkvist-4151865.jpg

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建 React 应用
  • 安装 React Redux Module
  • 使用 Redux Provider 包裹应用
  • 创建 Redux Store
  • 创建 Redux State Slice Reducer
  • 在 Store 中注册 State Slice
  • 在 React 组件中使用 Redux State
  • 在浏览器中查看应用
  • 总结
  • 参考
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档