Checklist React para decidir quando não usar useEffect em estado derivado, fetch, sincronização e reset de props. Trigger em: "useEffect", "estado derivado", "race condition no fetch", "sincronizar estado", "resetar estado quando prop muda", "effect chain", "notificar parent via effect", "useSyncExternalStore", "por que renderizou duas vezes".
82%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Effects sao uma valvula de escape do React: servem pra sincronizar com um sistema externo (DOM nao-React, API do browser, subscription de store externa). Se nao ha sistema externo envolvido, provavelmente nao precisa de Effect — e o codigo com Effect desnecessario tende a rodar em passes extras, causar race condition ou disparar em momentos inesperados (ex: refresh de pagina).
Esta skill entra em dois momentos: (1) ao escrever um useEffect novo, como
checklist antes de commitar; (2) ao revisar codigo/PR que usa useEffect,
como lente pra achar o antipattern especifico e sugerir a alternativa direta.
Esta skill segue GLOBAL.md, policies/execution.md, policies/handoffs.md.
useEffect novo, como checklist antes de commitaruseEffect, pra achar o antipattern específicouseSyncExternalStore, key prop, ou calcula no render corretamente — nada a revisar| Situacao | NAO FACA | FACA |
|---|---|---|
| Estado derivado de props/state | useState + useEffect | Calcular durante o render |
| Calculo caro | useEffect pra cachear | useMemo |
| Resetar estado ao mudar prop | useEffect com setState | key prop |
| Resposta a evento do usuario | useEffect observando state | Direto no event handler |
| Notificar parent de uma mudanca | useEffect chamando onChange | Chamar no mesmo event handler |
| Fetch de dados | useEffect sem cleanup | useEffect com cleanup OU lib de fetch |
Precisa responder a algo?
├── Interacao do usuario (click, submit, drag)?
│ └── EVENT HANDLER
├── Componente apareceu na tela e precisa sincronizar com algo externo?
│ └── EFFECT (widget nao-React, analytics, subscription)
├── Prop/state mudou e precisa de um valor derivado?
│ └── CALCULAR DURANTE O RENDER
│ └── Caro? use useMemo
└── Precisa resetar estado quando uma prop de identidade muda?
└── KEY PROP no componente filhouseSyncExternalStore)useMemo, key prop, guardar ID em vez de objeto, event handler, useSyncExternalStore, lifting state up, custom hook de fetch)useEffect cobrindo um dos 9 antipadrões de anti-patterns.mduseEffect novo, ou ao revisar PR com hooksConteúdo adaptado do skill público react-useeffect do repositório
wealthfolio/wealthfolio
(.claude/skills/react-useeffect/), que por sua vez destila a doc oficial
"You Might Not Need an Effect".
Sem acoplamento a nenhum projeto específico — aplicável a qualquer codebase
React/Next.js do kit.
felvieira/claude-skills-fv
449fb53
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.