RE

react-useeffect

A guide for React developers on when to avoid useEffect and how to use better alternatives for state and data management.

Install

mkdir -p .claude/skills/react-useeffect && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/4252" && unzip -o skill.zip -d .claude/skills/react-useeffect && rm skill.zip

Installs to .claude/skills/react-useeffect

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

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.
214 chars✓ has a “when” trigger
Intermediate

Key capabilities

  • Identify appropriate use of event handlers
  • Implement cleanup functions for effects
  • Calculate derived state during rendering
  • Use key props for state resetting
  • Replace effects with useMemo

How it works

Applies a formal decision tree to identify if a task is better handled by component renders or event triggers.

Inputs & outputs

You give it
Existing effect code or component logic
You get back
Refactored React code following best practices

When to use react-useeffect

  • Refactor a component to remove unnecessary useEffect
  • Replace state synchronization with derived values
  • Identify correct patterns for data fetching in React

About this skill

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

When not to use it

  • Synchronizing with local browser-side UI states
  • Triggering side effects unrelated to React component lifecycle

Prerequisites

react

Limitations

  • Refactoring requires developer understanding of component lifecycles
  • Some external systems still necessitate effects

How it compares

It forces a reduction in side-effect complexity rather than just helping write the effects themselves.

Compared to similar skills

react-useeffect side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
react-useeffect (this skill)77moNo flagsIntermediate
accessibility-compliance452moNo flagsIntermediate
feature-flags66moReviewIntermediate
react-ui-patterns27moNo flagsBeginner

Try saying

Example prompts that trigger this skill in your AI assistant.

Search skills

Search the agent skills registry