mcpField
R
react-useeffect

react-useeffect

github.com/softaworks開発2.6k4.1k 回インストール34 週間前に更新
リポジトリ

react-useeffect について

Effectを使う場面を判断するための、開発者向けReactガイドスキルです。派生状態やイベント、計算の代替手段に加え、外部システムとの同期についても説明します。

主な機能

  1. 01Effectが必要な場面の説明
  2. 02派生状態の代替方法
  3. 03イベントハンドラーの推奨
  4. 04高コストな計算でのuseMemo
  5. 05データ取得時のクリーンアップ指針

活用シーン

  1. 01派生データにEffectを使うコンポーネントの見直し
  2. 02ユーザー操作への応答方法の選択
  3. 03外部システムとの同期の設計

インストール

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

$npx skills add https://github.com/softaworks/agent-toolkit --skill react-useeffect

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

alternatives.md
anti-patterns.md
README.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

詳細なガイダンス

コメント