redux

redux

轻量级JavaScript应用状态管理库

Redux是一个轻量级的JavaScript状态管理库,用于创建行为一致且易于测试的应用。它通过单一状态树和纯函数reducer来管理应用状态,适用于客户端、服务器端和原生环境。Redux Toolkit作为官方推荐工具集,简化了Redux的使用流程,内置最佳实践,有效预防常见错误。Redux可与React等视图库搭配使用,也可独立应用于各种JavaScript项目中。

Redux状态管理JavaScript库ReactRedux ToolkitGithub开源项目

<a href='https://redux.js.org'><img src='https://avatars.githubusercontent.com/u/13142323?s=200&v=4' height='60' alt='Redux 标志' aria-label='redux.js.org' style="display: flex;align-items: center;"/>Redux</a>

Redux 是一个用于可预测和可维护的全局状态管理的 JavaScript 库。

它可以帮助你编写行为一致的应用程序,这些应用程序可以在不同环境(客户端、服务器和原生环境)中运行,并且易于测试。此外,它还提供了出色的开发者体验,例如结合时间旅行调试器的实时代码编辑

你可以将 Redux 与 React 或任何其他视图库一起使用。Redux 核心非常小(包括依赖项在内只有 2kB),并且拥有丰富的插件生态系统。

Redux Toolkit 是我们官方推荐的编写 Redux 逻辑的方法。它封装了 Redux 核心,并包含了我们认为对构建 Redux 应用程序至关重要的包和函数。Redux Toolkit 内置了我们建议的最佳实践,简化了大多数 Redux 任务,防止了常见错误,并使编写 Redux 应用程序变得更加容易。

GitHub 工作流状态 npm 版本 npm 下载量 Redux Discord 频道

安装

创建 React Redux 应用

使用 React 和 Redux Toolkit 启动新应用的推荐方式是使用我们官方的 Redux Toolkit + TS 模板,适用于 Vite,或者使用 Next.js 的 with-redux 模板创建新的 Next.js 项目。

这两种方式都已经为相应的构建工具正确配置了 Redux Toolkit 和 React-Redux,并附带了一个小型示例应用,演示了如何使用 Redux Toolkit 的几个功能。

# 使用我们的 Redux+TS 模板的 Vite # (使用 `degit` 工具克隆并提取模板) npx degit reduxjs/redux-templates/packages/vite-template-redux my-app # 使用 `with-redux` 模板的 Next.js npx create-next-app --example with-redux my-app

我们目前没有官方的 React Native 模板,但推荐以下模板用于标准 React Native 和 Expo:

npm install @reduxjs/toolkit react-redux

仅安装 Redux 核心库:

npm install redux

更多详情,请参阅安装文档页面

文档

Redux 核心文档位于 **https://redux.js.org**,包括完整的 Redux 教程以及关于一般 Redux 模式的使用指南:

Redux Toolkit 文档可在 https://redux-toolkit.js.org 找到,包括 Redux Toolkit 中所有 API 的 API 参考和使用指南。

学习 Redux

Redux 精要教程

Redux 精要教程是一个"自上而下"的教程,教授"如何正确使用 Redux",使用我们最新推荐的 API 和最佳实践。我们建议从这里开始。

Redux 基础教程

Redux 基础教程是一个"自下而上"的教程,从最基本的原理教授"Redux 如何工作",不使用任何抽象,并解释为什么存在标准的 Redux 使用模式。

帮助和讨论

Reactiflux Discord 社区#redux 频道 是我们所有与学习和使用 Redux 相关问题的官方资源。Reactiflux 是一个很棒的地方,可以在那里闲逛、提问和学习 - 请来加入我们!

在继续之前

Redux 是组织状态的有价值工具,但你也应该考虑它是否适合你的情况。请不要仅仅因为有人说你应该使用 Redux 就使用它 - 相反,请花些时间了解使用它的潜在好处和权衡。

以下是何时使用 Redux 合理的一些建议:

  • 你有相当数量的随时间变化的数据
  • 你需要一个单一的真实来源来管理你的状态
  • 你发现将所有状态保存在顶层组件中已经不够用了

是的,这些指南是主观和模糊的,但这是有充分理由的。每个用户和每个应用程序应该集成 Redux 的时机都是不同的。

关于 Redux 应该如何使用的更多思考,请参阅:<br>

基本示例

你的应用程序的整个全局状态被存储在单个 store 内的对象树中。 改变状态树的唯一方法是创建一个 action(描述发生了什么的对象)并将其 dispatch 到 store。 为了指定状态如何响应 action 进行更新,你需要编写纯 reducer 函数,这些函数根据旧状态和 action 计算新状态。

Redux Toolkit 简化了编写 Redux 逻辑和设置 store 的过程。使用 Redux Toolkit,基本的应用逻辑如下所示:

import { createSlice, configureStore } from '@reduxjs/toolkit' const counterSlice = createSlice({ name: 'counter', initialState: { value: 0 }, reducers: { incremented: state => { // Redux Toolkit 允许我们在 reducer 中编写"变更"逻辑。它 // 实际上并不会变更状态,因为它使用了 Immer 库, // 该库检测对"草稿状态"的更改并基于这些更改生成全新的 // 不可变状态 state.value += 1 }, decremented: state => { state.value -= 1 } } }) export const { incremented, decremented } = counterSlice.actions const store = configureStore({ reducer: counterSlice.reducer }) // 仍然可以订阅 store store.subscribe(() => console.log(store.getState())) // 仍然将 action 对象传递给 `dispatch`,但它们是为我们创建的 store.dispatch(incremented()) // {value: 1} store.dispatch(incremented()) // {value: 2} store.dispatch(decremented()) // {value: 1}

Redux Toolkit 允许我们编写更简短的逻辑,更易于阅读,同时仍然遵循原始的 Redux 核心行为和数据流。

标志

你可以在 GitHub 上找到官方标志。

更新日志

本项目遵循语义化版本。 每个版本,以及迁移说明,都记录在 GitHub 的 Releases 页面上。

许可证

MIT

编辑推荐精选

蛙蛙写作

蛙蛙写作

AI小说写作助手,一站式润色、改写、扩写

蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。

AI辅助写作AI工具蛙蛙写作AI写作工具学术助手办公助手营销助手AI助手
Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

下拉加载更多