Project Icon

redux

轻量级JavaScript应用状态管理库

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

Redux 标志Redux

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 应该如何使用的更多思考,请参阅:

基本示例

你的应用程序的整个全局状态被存储在单个 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

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

问小白

问小白是一个基于 DeepSeek R1 模型的智能对话平台,专为用户提供高效、贴心的对话体验。实时在线,支持深度思考和联网搜索。免费不限次数,帮用户写作、创作、分析和规划,各种任务随时完成!

Project Cover

白日梦AI

白日梦AI提供专注于AI视频生成的多样化功能,包括文生视频、动态画面和形象生成等,帮助用户快速上手,创造专业级内容。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

讯飞绘镜

讯飞绘镜是一个支持从创意到完整视频创作的智能平台,用户可以快速生成视频素材并创作独特的音乐视频和故事。平台提供多样化的主题和精选作品,帮助用户探索创意灵感。

Project Cover

讯飞文书

讯飞文书依托讯飞星火大模型,为文书写作者提供从素材筹备到稿件撰写及审稿的全程支持。通过录音智记和以稿写稿等功能,满足事务性工作的高频需求,帮助撰稿人节省精力,提高效率,优化工作与生活。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

Trae

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

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号