首页 > 其他分享 >完整的 Redux 工具包(第 1 部分)

完整的 Redux 工具包(第 1 部分)

时间:2024-09-22 10:02:04浏览次数:8  
标签:redux counter toolkit 工具包 react 完整 import Redux

redux 工具包的用途我们已经知道 redux 是 javascript 应用程序的一个强大的状态管理库,特别是在使用 react 时。但是使用 redux 很困难,因为它设置 redux 的代码很繁重。这使得维护和调试变得困难。这就是 redux toolkit 可以提供帮助的地方。 redux 工具包解决的问题开店太复杂了。添加许多包以与 redux 一起使用,例如中间件、工具。redux 需要太多代码来设置 redux 工具包是官方推荐的编写 redux 逻辑的方法。它提供了一组工具来简化开发,减少样板代码,有助于提高应用程序的可扩展性和可维护性。redux 工具包的主要优点:更少的样板代码:不再需要动作创建者和常量。简化的商店设置:提供单个 api 来使用合理的默认值配置商店。内置对不变性和 devtools 的支持:自动启用 redux devtools 并与 immer 集成以实现不变性。更好的 typescript 支持:提供更好的打字效果并与 typescript 很好地集成。我们可以将 redux 工具包与任何 javascript 库一起使用,因此我们使用 react 设置 redux 工具包。在 react 应用程序中设置 redux 工具包第 1 步:创建一个新的 react 项目首先,让我们创建一个新的 react 应用程序。您可以使用 create-react-app 或 vite 来实现此目的。为了简单起见,我们将在这里使用 create-react-app。npx create-react-app redux-toolkit-examplecd redux-toolkit-example登录后复制第 2 步:安装 redux 工具包和 react-redux接下来,安装必要的软件包:@reduxjs/toolkit 和react-redux。npm install @reduxjs/toolkit react-redux登录后复制了解切片和减速器切片是针对应用程序特定功能的 redux 减速器逻辑和操作的集合。 redux toolkit 提供了 createslice 函数来帮助使用最少的样板创建状态切片。第 1 步:创建切片让我们创建一个简单的计数器切片。在 features/counter 目录中创建一个名为 counterslice.js 的新文件:// src/features/counter/counterslice.jsimport { createslice } from '@reduxjs/toolkit';const initialstate = { value: 0,};const counterslice = createslice({ name: 'counter', initialstate, reducers: { increment: (state) =&gt; { state.value += 1; }, decrement: (state) =&gt; { state.value -= 1; }, incrementbyamount: (state, action) =&gt; { state.value += action.payload; }, },});export const { increment, decrement, incrementbyamount } = counterslice.actions;export default counterslice.reducer;登录后复制在这里,我们定义了一个名为 counter 的切片,它具有初始状态和三个减速器(increment、decrement 和incrementbyamount)。 createslice 函数会自动为每个reducer 函数生成动作创建者。配置 redux 存储现在我们有了切片,让我们配置 redux 存储。 redux toolkit 提供了一个 configurestore 函数,可以使用良好的默认值设置存储。第 1 步:创建商店在应用程序目录中创建 store.js 文件:// src/app/store.jsimport { configurestore } from '@reduxjs/toolkit';import counterreducer from '../features/counter/counterslice';const store = configurestore({ reducer: { counter: counterreducer, },});export default store;登录后复制第 2 步:为您的应用程序提供商店将您的 react 应用程序包装在react-redux 的组件中并将其传递给商店。更新index.js文件:// src/index.jsimport react from 'react';import reactdom from 'react-dom';import './index.css';import app from './app';import { provider } from 'react-redux';import store from './app/store';reactdom.render( <react.strictmode><provider store="{store}"><app></app></provider></react.strictmode>, document.getelementbyid('root'));登录后复制将组件连接到商店要与 redux 存储交互,请使用react-redux 提供的 useselector 和 usedispatch 钩子。第 1 步:使用 useselector 访问状态使用 useselector 钩子从 store 访问状态// src/features/counter/counter.jsimport react from 'react';import { useselector, usedispatch } from 'react-redux';import { increment, decrement, incrementbyamount } from './counterslice';const counter = () =&gt; { const count = useselector((state) =&gt; state.counter.value); const dispatch = usedispatch(); return ( <div> <h1>{count}</h1> <button onclick="{()"> dispatch(increment())}&gt;increment</button> <button onclick="{()"> dispatch(decrement())}&gt;decrement</button> <button onclick="{()"> dispatch(incrementbyamount(5))}&gt;increment by 5</button> </div> );};export default counter;登录后复制第 2 步:在您的应用中使用计数器组件在主应用程序组件中导入并使用 counter 组件:// src/App.jsimport React from 'react';import Counter from './features/counter/Counter';function App() { return ( <div classname="App"> <counter></counter></div> );}export default App;登录后复制结论和后续步骤在这一部分中,我们介绍了在 react 应用程序中设置 redux toolkit 的基础知识,包括创建切片、配置存储以及使用钩子将组件连接到 redux 存储。在下一部分中,我们将深入研究使用 createasyncthunk 处理异步逻辑,以从 api 获取数据并管理不同的加载状态。敬请关注第 2 部分:高级 redux 工具包 - 使用 createasyncthunk 的异步逻辑! 以上就是完整的 Redux 工具包(第 1 部分)的详细内容,更多请关注我的其它相关文章!

标签:redux,counter,toolkit,工具包,react,完整,import,Redux
From: https://www.cnblogs.com/aow054/p/18424971

相关文章

  • MacOS升级Ruby版本的完整指南
    前言随着技术的快速发展,保持开发环境的最新状态变得至关重要。对于Ruby开发者,升级Ruby版本不仅能获得性能提升,还能享受更多的功能特性和更高的安全性。特别是在移动端开发中,Ruby和RubyonRails的应用非常广泛,因此确保你的Ruby版本与最新标准一致尤为重要。本文将详细介绍如......
  • 华为杯D题完整解析+代码实现
    土地利用变化预测模型研究摘要在当前快速城市化的背景下,土地利用变化已成为影响生态环境和社会经济发展的重要因素。本文旨在通过建立多种预测模型,深入分析土地利用变化的特征及其驱动因素。首先,我们采用LSTM神经网络模型,以捕捉数据之间的长期依赖关系;随后,运用线性回归探讨自......
  • Acronis True Image 完整版的一些常用命令行参数:
    AcronisTrueImage完整版的一些常用命令行参数:常用命令参数备份:bashCopyCodeAcronisTrueImage.exe/backup/source:"源路径"/destination:"目标路径"/name:"备份名称"恢复:bashCopyCodeAcronisTrueImage.exe/restore/source:"备份文件路径"/destinatio......
  • 框架、工具包、插件、第三方库他们之间的区别和联系
    框架、工具包、插件和第三方库在软件开发中都是重要的组成部分,它们各自有着不同的定义、功能和用途,同时又相互联系。以下是对它们的详细解释以及区别和联系:框架(Framework)定义:框架是一种抽象的软件结构,它为特定类型的应用程序提供了基础架构和一套预定义的规则、组件及工......
  • Redux 与 ContextProvider:在 React 应用程序中选择状态管理
    长话短说当您需要一个强大且可扩展的解决方案来进行复杂的状态管理时,请使用redux,特别是在具有许多组件与状态交互的大型应用程序中。当你的状态管理需求更简单、更本地化,或者当你想避免小型应用程序中redux的开销时,请使用context.provider。让我们开始吧在react或nex......
  • 软硬件项目运维方案(Doc原件完整版套用)
    1系统的服务内容1.1服务目标1.2信息资产统计服务1.3网络、安全系统运维服务1.4主机、存储系统运维服务1.5数据库系统运维服务1.6中间件运维服务2运维服务流程3服务管理制度规范3.1服务时间3.2行为规范3.3现场服务支持规范3.4问题记录规......
  • WINDOWS安装RAGFLOW完整流程
    RAGFLOW是比较强大的知识库,支持搜索,聊天多种模式。知识库相比anyllm,fastgpt,dify,maxkb更强大,支持自定义分隔符,支持各种大模型提供商,如ollama等。官方体验地址,RAGFlow1:虚拟机安装:不建议通过wsl安装,wsl会遇到systecmctl不可用等诸多问题。以VMWarePro为例,参考下面链接完成安装......
  • 【春秋招必看】Unity相关笔试面试题(内有完整答案)第二期
    欢迎来到光光的奇妙冒险,我是你们的煎饼光子老师。今天是我们的第二期笔试面试题总结。C#部分:1、请说说你认为C#中==和Equals的区别是什么?答案:(1).==是运算符,Equals是万物之父Object中的虚方法,子类可重写(2).Equals一般在子类中重写后用于比较两个对象中内容是否相同......
  • 回归预测|2024年最新优化算法美洲狮优化器PO 基于美洲狮PO优化BP神经网络数据时间序列
    回归预测|2024年最新优化算法美洲狮优化器PO基于美洲狮PO优化BP神经网络数据时间序列算法完整Maltab程序有对比文章目录一、基本原理1.美洲狮优化算法(POA)简介2.BP神经网络(BPNeuralNetwork)简介3.PO-BP回归预测流程总结二、实验结果三、核心代码四、代码获取五......
  • AI视频百万播放,用这个免费的AI工具,3步教你制作爆款治愈系视频!(附完整教程)
    大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年+,也一名AIGC爱好者,持续分享更多前沿的「AI工具」和「AI副业玩法」,欢迎一起交流~今天一位粉丝发了一个视频链接,问这类治愈系风景的视频是用什么AI工具做的?给大家看看,就是下面这些:大家是不是也经常在网上刷到这类治愈系风景......