技能 react-state-management
📦

react-state-management

安全 ⚙️ 外部命令🌐 网络访问

实现 React 状态管理

也可从以下获取: wshobson

此技能帮助开发者为 React 应用选择和实现合适的状态管理方案,从简单的本地状态到复杂的全局存储及服务器同步。

支持: Claude Codex Code(CC)
🥉 74 青铜
1

下载技能 ZIP

2

在 Claude 中上传

前往 设置 → 功能 → 技能 → 上传技能

3

开启并开始使用

测试它

正在使用“react-state-management”。 如何在 Redux Toolkit 和 Zustand 之间选择?

预期结果:

对于中小型应用和简单状态需求,Zustand 提供极简的 API 和出色的 TypeScript 支持。对于需要中间件、开发工具集成和严格模式的大型企业应用,Redux Toolkit 提供结构化方案。使用 Zustand 当:你需要简单全局状态且无样板代码、偏好基于 hooks 的 API、希望最小化打包体积。使用 Redux Toolkit 当:你需要带有 thunks 的复杂异步逻辑、需要严格的动作追踪用于调试、你的团队熟悉 Redux 模式。

正在使用“react-state-management”。 设置 React Query 进行数据获取

预期结果:

安装 @tanstack/react-query,然后用 QueryClientProvider 包裹你的应用。创建带有缓存默认选项的 query client。使用 useQuery hook 进行带 key 的获取以实现缓存管理。使用 useMutation 进行更新,通过 onMutate 实现乐观更新。query key ['users', userId] 启用自动重新获取和缓存。

安全审计

安全
v1 • 2/24/2026

This is a documentation skill for React state management patterns. Static analysis flagged external_commands, network, and sensitive data patterns, but evaluation confirms these are FALSE POSITIVES - the 'backticks' are TypeScript template literals in code examples, 'fetch' calls are legitimate API examples, and 'localStorage' access is proper state persistence teaching. No actual security risks identified.

1
已扫描文件
444
分析行数
5
发现项
1
审计总数
中风险问题 (2)
External Command Pattern Detected (FALSE POSITIVE)
Static analyzer flagged backtick usage as shell command execution. This is a false positive - backticks are TypeScript template literals in code examples for educational content about React state management.
Network API Calls in Code Examples (FALSE POSITIVE)
Static analyzer flagged fetch() calls and URLs. These are legitimate code examples teaching proper API integration patterns.
低风险问题 (1)
Browser Storage Access (FALSE POSITIVE)
localStorage usage flagged as sensitive data access. This is proper state persistence teaching in React patterns.
审计者: claude

质量评分

38
架构
100
可维护性
87
内容
50
社区
93
安全
100
规范符合性

你能构建什么

新 React 项目设置

在启动新的 React 应用时选择和配置合适的状态管理方案

传统代码迁移

从旧版 Redux 模式或类组件迁移到现代状态管理方法

性能优化

在现有应用中减少不必要的重新渲染并优化状态访问模式

试试这些提示

基础状态设置
展示如何为一个带有用户认证状态和主题切换的简单 React 应用设置 Zustand。
Redux Toolkit 设置
创建一个带有类型化 hooks 的 Redux Toolkit store,以及一个处理异步获取的用户 slice。
使用 React Query 管理服务器状态
设置 React Query 进行用户数据获取,包含缓存、突变时的乐观更新和错误处理。
原子状态模式
使用 Jotai atoms 实现一个购物车,包含用于计算总额的派生 atoms 和 localStorage 持久化。

最佳实践

  • 分离客户端状态和服务器状态 - 使用 React Query 管理服务器数据,使用 Zustand/Redux 管理 UI 状态
  • 将状态放置在靠近使用位置 - 避免将所有内容放入全局状态
  • 对所有状态相关代码使用 TypeScript 以防止运行时错误并启用更好的 IDE 支持

避免

  • 将服务器数据存储在全局状态而非使用 React Query - 会造成同步问题
  • 过度全局化状态 - 当 useState 足够时将组件特定状态放入 Redux/Zustand
  • 直接修改状态而非使用不可变更新模式 - 破坏响应性

常见问题

新 React 项目的最佳状态管理是什么?
对于大多数新项目,Zustand 提供简洁性和功能的最佳平衡。使用 React Query 管理服务器状态。只有在有复杂异步工作流或需要中间件时才选择 Redux Toolkit。
何时使用 React Query 与 Redux?
使用 React Query 管理服务器状态(API 数据、缓存、同步)。使用 Redux 或 Zustand 管理客户端状态(UI 状态、用户会话、表单数据)。切勿在全局存储中复制服务器状态。
可以组合使用多种状态方案吗?
可以 - 这是推荐的。使用 React Query 管理服务器状态,Zustand 或 Redux 管理客户端状态,useState 管理本地组件状态。每种服务于不同目的。
如何在页面刷新间持久化状态?
使用 Zustand persist 中间件、Jotai atomWithStorage 或 Redux persist。对于敏感数据,考虑使用 sessionStorage 替代 localStorage。
Jotai 和 Zustand 的区别是什么?
Jotai 使用原子状态,每个 atom 独立且派生 atoms 自动重新计算。Zustand 使用单个 store 带选择器。Jotai 擅长细粒度更新,Zustand 擅长简洁性。
如何在 Redux Toolkit 中处理异步动作?
使用 createAsyncThunk 处理异步操作。它自动处理 pending/fulfilled/rejected 状态,并与 Redux DevTools 集成用于调试。

开发者详情

文件结构

📄 SKILL.md