技能 react-patterns
📦

react-patterns

安全

掌握 React 开发模式和最佳实践

自信地构建生产就绪的 React 应用。学习经过验证的 hooks、状态管理和组件设计模式。

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

下载技能 ZIP

2

在 Claude 中上传

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

3

开启并开始使用

测试它

正在使用“react-patterns”。 什么时候应该使用 Context 而不是像 Zustand 这样的全局 store?

预期结果:

对组件子树内的共享状态(如 theme 或 locale)使用 Context。对需要 devtools、持久化或在许多不相关组件间访问的应用级状态使用 Zustand。Context 是内置的但可能导致重新渲染;Zustand 为频繁更新提供更好的性能。

正在使用“react-patterns”。 这个 useEffect 对于在 mount 时获取数据是必要的吗?

预期结果:

在 React 19 中,对于数据获取,优先使用服务端组件或像 React Query 这样的数据获取库,而不是 useEffect。useEffect 适用于订阅或非数据副作用。对于数据,使用自动处理缓存、去重和错误状态的库。

安全审计

安全
v1 • 2/24/2026

All 6 static analyzer findings are false positives. The SKILL.md file is educational documentation about React patterns, not executable code. Pattern matches on words like 'useLocalStorage' and section headings triggered false alarms. No actual security risks detected.

1
已扫描文件
204
分析行数
0
发现项
1
审计总数
未发现安全问题
审计者: claude

质量评分

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

你能构建什么

React 开发者入职

帮助新团队成员快速学习你们的 React 架构模式和编码标准。

组件重构指导

获取拆分大型组件和应用适当 hook 模式的建议。

状态管理决策

根据需求确定从 useState 到全局 store 的正确状态解决方案。

试试这些提示

基础 Hook 模式
解释在 React 中何时应该提取自定义 hook。展示 useLocalStorage 模式并提供示例代码。
组件设计审查
审查这个 React 组件并根据组件设计原则提出改进建议。识别是否应该将其拆分为更小的组件。
状态管理选择
我有一个应用,包含用户认证、主题偏好和实时通知。推荐一种状态管理方法并解释原因。
React 19 迁移
解释 React 19 编译器如何影响记忆化模式。展示哪些 useMemo 和 useCallback 调用可以被移除。

最佳实践

  • 在优化之前分析性能 - 首先测量实际瓶颈
  • 优先组合而非继承 - 构建小型、专注的组件
  • 列表渲染时使用稳定的唯一 key 而不是数组索引

避免

  • 深层 prop drilling - 改用 Context 或组件组合
  • 多职责的大型组件 - 拆分为更小的单元
  • 对所有事情都使用 useEffect - 在适当的地方利用服务端组件

常见问题

什么时候应该提取自定义 hook?
当相同的逻辑模式出现在多个组件中、需要复用状态逻辑、或由于 hook 复杂性导致组件代码难以阅读时,提取自定义 hook。
我的应用应该使用 Redux 还是 Context?
对于简单的共享状态从 Context 开始。当需要 devtools、中间件、时间旅行调试或在许多组件间有复杂状态交互时,使用 Redux 或 Zustand。
React 19 编译器功能是否向后兼容?
React 19 需要 React 19+。编译器自动化记忆化,但你现有的 useMemo 和 useCallback 调用仍然有效。升级后你可以移除不必要的调用。
如何在 useState 和 useReducer 之间选择?
对于简单值和独立状态使用 useState。当状态有复杂转换、多个值一起更新、或状态逻辑受益于显式 action 类型时,使用 useReducer。
什么是复合组件模式?
复合组件通过共享上下文协同工作。父组件通过 Context 提供状态,子组件消费它。示例包括带有 TabList/Tab/TabPanel 的 Tabs 或带有 Option 组件的 Select。
什么时候应该使用错误边界?
在应该独立失败的功能周围放置错误边界。使用应用级边界实现优雅降级,功能级边界实现隔离失败,组件级边界处理有风险的第三方集成。

开发者详情

文件结构

📄 SKILL.md