React Useeffect

softaworks/agent-toolkit/skills/react-useeffect

作者 softaworks3027f20f3181758385a1bb8c022d4041dfb4de84无许可证2.5K 个星标收录于 2026年10月9日更新于 2026年10月9日仓库7个月前更新

React useEffect best practices from official docs. Use when writing/reviewing useEffect, useState for derived values, data fetching, or state synchronization. Teaches when NOT to use Effect and better alternatives.

AI 生成的概览

指导 React 开发者何时使用或避免 useEffect,并提供派生状态、事件和数据获取的替代方案。

功能
该技能基于官方文档提供 React useEffect 最佳实践。它说明 Effect 是与外部系统同步的逃生舱,并列出不需要使用 Effect 的场景。内容包含快速参考表、决策树,以及指向反模式和替代方案的链接,例如 useMemo、key 属性和 useSyncExternalStore。
适用场景
在编写或审查涉及 useEffect、用于派生值的 useState、数据获取或状态同步的 React 组件时使用。它也适合用来判断是否真的需要 Effect。
运行要求
无需工具、软件包或凭据;仅为说明性内容,不附带脚本。

You Might Not Need an Effect

Effects are an escape hatch from React. They let you synchronize with external systems. If there is no external system involved, you shouldn't need an Effect.

Quick Reference

SituationDON'TDO
Derived state from props/stateuseState + useEffectCalculate during render
Expensive calculationsuseEffect to cacheuseMemo
Reset state on prop changeuseEffect with setStatekey prop
User event responsesuseEffect watching stateEvent handler directly
Notify parent of changesuseEffect calling onChangeCall in event handler
Fetch datauseEffect without cleanupuseEffect with cleanup OR framework

When You DO Need Effects

  • Synchronizing with external systems (non-React widgets, browser APIs)
  • Subscriptions to external stores (use useSyncExternalStore when possible)
  • Analytics/logging that runs because component displayed
  • Data fetching with proper cleanup (or use framework's built-in mechanism)

When You DON'T Need Effects

  1. Transforming data for rendering - Calculate at top level, re-runs automatically
  2. Handling user events - Use event handlers, you know exactly what happened
  3. Deriving state - Just compute it: const fullName = firstName + ' ' + lastName
  4. Chaining state updates - Calculate all next state in the event handler

Decision Tree

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

Detailed Guidance

  • Anti-Patterns - Common mistakes with fixes
  • Better Alternatives - useMemo, key prop, lifting state, useSyncExternalStore

来源与署名

来源:softaworks/agent-toolkit位于skills/react-useeffect提交3027f20

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架