mcpField
R
react-useeffect

react-useeffect

github.com/nweii開発1040 回インストール今日更新
リポジトリ

react-useeffect について

React 開発向けに、Effect が必要な場面と、レンダー中の計算やイベントハンドラーなどで代替できる場面を解説するスキルです。不要な useEffect の使用を避けることに重点を置きます。

主な機能

  1. 01Effect が必要な場面の説明
  2. 02派生状態の代替手段
  3. 03イベントハンドラーの利用指針
  4. 04データ取得時のクリーンアップ指針
  5. 05方法を選ぶための判断ツリー

活用シーン

  1. 01useEffect を使うコンポーネントの見直し
  2. 02props や状態からの値の導出
  3. 03Effect を使わないユーザー操作の処理
  4. 04クリーンアップを伴うデータ取得

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/nweii/agent-stuff --skill react-useeffect

インストール後、Claude Code で/react-useeffectを入力して読み込まれたか確認します。

同梱ファイルalternatives.mdanti-patterns.md

詳細

Effectは本当に必要か?

Effectは React からの脱出ハッチです。外部システムと同期するために使います。外部システムが関係しない場合、Effectは不要なはずです。

クイックリファレンス

状況やってはいけないこと推奨
props/state から導出される状態useState + useEffectレンダー中に計算する
重い計算キャッシュのために useEffect を使うuseMemo
props 変更時の状態リセットsetState を使った useEffectkey prop
ユーザーイベントへの応答state を監視する useEffectイベントハンドラーで直接処理する
親への変更通知onChange を呼ぶ useEffectイベントハンドラー内で呼ぶ
データ取得クリーンアップのない useEffectクリーンアップ付きの useEffect または フレームワーク

Effectが必要な場合

  • 外部システム(React 以外のウィジェット、ブラウザー API)との同期
  • 外部ストアへのサブスクリプション(可能な場合は useSyncExternalStore を使用)
  • コンポーネントが表示されたことによって実行されるアナリティクス/ロギング
  • 適切なクリーンアップを伴うデータ取得(またはフレームワークの組み込みの仕組みを使用)

Effectが不要な場合

  1. レンダリングのためのデータ変換 - トップレベルで計算すれば、自動的に再実行される
  2. ユーザーイベントの処理 - イベントハンドラーを使う。何が起きたかが正確にわかっている
  3. 状態の導出 - 単に計算する: const fullName = firstName + ' ' + lastName
  4. 状態更新の連鎖 - イベントハンドラー内で次の状態をすべて計算する

判断ツリー

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

詳細なガイダンス

コメント