React Useeffect

作者 davila78da17d671b6f無授權條款32K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫今天更新

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

來源與署名

來源:davila7/claude-code-templates位於cli-tool/components/skills/development/react-useeffect提交8da17d6

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架