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

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

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

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

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

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

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