mcpField
R
react-useeffect

react-useeffect

github.com/softaworks开发2.6k4.1k 次安装34 周前更新
代码仓库

关于 react-useeffect

面向开发者的 React 指导技能,帮助判断何时使用 Effect。它说明派生状态、事件和计算的替代做法,也涵盖与外部系统同步的情况。

主要功能

  1. 01说明 Effect 的适用时机
  2. 02提供派生状态的替代方案
  3. 03建议使用事件处理函数
  4. 04使用 useMemo 处理耗时计算
  5. 05提供数据获取清理指导

适用场景

  1. 01检查用 Effect 处理派生数据的组件
  2. 02选择响应用户操作的实现方式
  3. 03规划与外部系统同步

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/softaworks/agent-toolkit --skill react-useeffect

安装后在 Claude Code 中输入/react-useeffect确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

alternatives.md
anti-patterns.md
README.md

详细介绍

你可能不需要 Effect

Effect 是 React 的逃生舱口。它们让你能够与外部系统同步。如果不涉及外部系统,你就不应该需要 Effect。

快速参考

场景不要要
从 props/state 派生状态useState + useEffect在渲染期间计算
开销较大的计算用 useEffect 缓存useMemo
prop 变化时重置 state带 setState 的 useEffectkey prop
响应 user 事件监视 state 的 useEffect直接在事件处理函数中处理
通知父组件变更调用 onChange 的 useEffect在事件处理函数中调用
获取数据不带清理的 useEffect带清理的 useEffect 或框架机制

何时你确实需要 Effect

  • 与外部系统同步(非 React 组件、浏览器 API)
  • 对外部 store 的订阅(尽可能使用 useSyncExternalStore)
  • 因组件显示而运行的分析/日志
  • 带正确清理的数据获取(或使用框架的内置机制)

何时你不需要 Effect

  1. 为渲染转换数据 - 在顶层计算,自动重新运行
  2. 处理 user 事件 - 使用事件处理函数,你明确知道发生了什么
  3. 派生 state - 直接计算:const fullName = firstName + ' ' + lastName
  4. 链式 state 更新 - 在事件处理函数中计算所有下一次 state

决策树

Need to respond to something?
├── User interaction (click, submit, drag)?
│   └── Use EVENT HANDLER
├── Component appeared on screen?
│   └── Use EFFECT (external sync, analytics)
├── Props/state changed and need derived value?
│   └── CALCULATE DURING RENDER
│       └── Expensive? Use useMemo
└── Need to reset state when prop changes?
    └── Use KEY PROP on component

详细指导

评论

支持 Markdown