Catalog
softaworks/react-useeffect

softaworks

react-useeffect

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.

global
0installs0uses~562
v1.1Saved Apr 20, 2026

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

Situation DON'T DO
Derived state from props/state useState + useEffect Calculate during render
Expensive calculations useEffect to cache useMemo
Reset state on prop change useEffect with setState key prop
User event responses useEffect watching state Event handler directly
Notify parent of changes useEffect calling onChange Call in event handler
Fetch data useEffect without cleanup useEffect 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

Files4
4 files · 22.6 KB

Select a file to preview

Overall Score

92/100

Grade

A

Excellent

Safety

98

Quality

92

Clarity

89

Completeness

88

Summary

This skill teaches React developers when and how to use useEffect correctly, emphasizing that Effects are an escape hatch and many common use cases don't need them. It provides a quick reference table, decision tree, and detailed anti-patterns with alternatives like useMemo, the key prop, event handlers, and useSyncExternalStore.

Detected Capabilities

Pattern recognition for useEffect anti-patternsCode comparison (bad vs. good examples)Decision-tree guidance for choosing the right toolBest practices and gotchas in React hooksData fetching patterns with race condition preventionPerformance optimization guidance (useMemo, derived state)

Trigger Keywords

Phrases that MCP clients use to match this skill to user intent.

useEffect bugderived statedata fetching patternrace conditionreset component statewhen not to useEffectuseMemo alternativeeffect cleanupstate synchronization

Referenced Domains

External domains referenced in skill content, detected by static analysis.

react.dev

Use Cases

  • Writing or reviewing useEffect code
  • Fixing bugs related to stale data or race conditions
  • Choosing between useEffect and alternatives like useMemo or event handlers
  • Implementing data fetching with proper cleanup
  • Resetting component state when props change
  • Optimizing performance by eliminating unnecessary Effects

Quality Notes

  • Excellent pedagogical structure: quick reference → decision tree → anti-patterns → alternatives
  • Comprehensive coverage: 9 anti-patterns with detailed explanations, code examples, and reasoning
  • Practical decision tree with clear branching paths to guide developers to correct solutions
  • Strong reference to official React documentation (react.dev) provides authority and credibility
  • Multiple example formats (tables, code blocks, flowcharts) cater to different learning styles
  • Addresses common gotchas like race conditions, Strict Mode double-rendering, and stale closures
  • Supporting files (anti-patterns.md, alternatives.md) are well-organized and cross-referenced
  • README.md provides excellent context for when to activate the skill with concrete trigger phrases
  • All code examples are correct and demonstrate genuine React patterns
  • Best practices section distills guidance into actionable steps
  • Common Pitfalls section explicitly addresses symptoms, causes, and fixes
Model: claude-haiku-4-5-20251001Analyzed: Apr 20, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Version History

v1.1

Content updated

2026-04-20

Latest
v1.0

No changelog

2026-04-12

Add softaworks/react-useeffect to your library

Command Palette

Search for a command to run...