Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

react-hook-form

React Hook Formライブラリを使用したクライアントサイドのフォームバリデーションを、`useForm`・`useWatch`・`useController`・`useFieldArray`を活用してパフォーマンス最適化するスキルです。React Hook Formでクライアントサイドの制御フォームを構築する際に使用してください。なお、React 19のServer Actions・`useActionState`・サーバーサイドのフォーム処理には対応していません(それらは`react-19`スキルを使用)。

description の原文を見る

React Hook Form performance optimization for client-side form validation using useForm, useWatch, useController, and useFieldArray. This skill should be used when building client-side controlled forms with React Hook Form library. This skill does NOT cover React 19 Server Actions, useActionState, or server-side form handling (use react-19 skill for those).

SKILL.md 本文

React Hook Form ベストプラクティス

React Hook Form アプリケーションの包括的なパフォーマンス最適化ガイド。8つのカテゴリーにわたる41のルールを含み、フォーム開発、自動リファクタリング、コード生成のガイドとなるよう影響度別に優先順位付けされています。

適用時期

以下の場合に、これらのガイドラインを参照してください:

  • React Hook Form で新しいフォームを作成する場合
  • useForm オプション (mode、defaultValues、validation) を設定する場合
  • watch/useWatch でフォーム値に購読する場合
  • 制御されたUIコンポーネント (MUI、shadcn、Ant Design) を統合する場合
  • useFieldArray で動的フィールド配列を管理する場合
  • フォームのパフォーマンス問題をレビューする場合

ルールカテゴリー優先度順

優先度カテゴリー影響度プレフィックス
1フォーム設定重大formcfg-
2フィールド購読重大sub-
3制御コンポーネントctrl-
4検証パターンvalid-
5フィールド配列中~高array-
6状態管理formstate-
7統合パターンinteg-
8高度なパターンadv-

クイックリファレンス

1. フォーム設定 (重大)

  • formcfg-validation-mode - 最適なパフォーマンスのため onSubmit モードを使用
  • formcfg-revalidate-mode - 送信後のパフォーマンスのため reValidateMode を onBlur に設定
  • formcfg-default-values - フォーム初期化のため常に defaultValues を提供
  • formcfg-async-default-values - サーバーデータに非同期 defaultValues を使用
  • formcfg-should-unregister - 動的フォームのメモリ効率のため shouldUnregister を有効化
  • formcfg-useeffect-dependency - useEffect 依存配列で useForm の戻り値を避ける

2. フィールド購読 (重大)

  • sub-usewatch-over-watch - 隔離された再レンダーのため useWatch を watch の代わりに使用
  • sub-watch-specific-fields - フォーム全体ではなく特定フィールドを購読
  • sub-usewatch-with-getvalues - タイミング安全性のため useWatch と getValues を組み合わせ
  • sub-deep-subscription - データが必要なコンポーネントツリーの深い場所で購読
  • sub-avoid-watch-in-render - 1回限りの読み取りのためレンダー内での watch() 呼び出しを避ける
  • sub-usewatch-default-value - 初期レンダーのため useWatch に defaultValue を提供
  • sub-useformcontext-sparingly - 深いネストのため useFormContext を慎重に使用

3. 制御コンポーネント (高)

  • ctrl-usecontroller-isolation - 再レンダー隔離のため useController を使用
  • ctrl-avoid-double-registration - useController での二重登録を避ける
  • ctrl-controller-field-props - UIライブラリのため Controller フィールドプロップを正しく配線
  • ctrl-single-usecontroller-per-component - コンポーネントあたり単一の useController を使用
  • ctrl-local-state-combination - UI のみの状態のため ローカル状態を useController と組み合わせ

4. 検証パターン (高)

  • valid-resolver-caching - リゾルバーキャッシングのためコンポーネント外でスキーマを定義
  • valid-dynamic-schema-factory - 動的検証のためスキーマファクトリーを使用
  • valid-error-message-strategy - オプショナルチェーンまたは lodash get でエラーにアクセス
  • valid-inline-vs-resolver - 複雑なルールのためインライン検証よりリゾルバーを優先
  • valid-delay-error - 急速なエラー表示をデバウンスするため delayError を使用
  • valid-native-validation - シンプルなフォームのためネイティブ検証を検討

5. フィールド配列 (中~高)

  • array-use-field-id-as-key - useFieldArray マップのキーとして field.id を使用
  • array-complete-default-objects - フィールド配列操作のため完全なデフォルトオブジェクトを提供
  • array-separate-crud-operations - 順序的なフィールド配列操作を分離
  • array-unique-fieldarray-per-name - フィールド名ごとに単一の useFieldArray インスタンスを使用
  • array-virtualization-formprovider - 仮想化されたフィールド配列のため FormProvider を使用

6. 状態管理 (中)

  • formstate-destructure-formstate - レンダー前に formState プロパティを分割代入
  • formstate-useformstate-isolation - 隔離された状態購読のため useFormState を使用
  • formstate-getfieldstate-for-single-field - 単一フィールド状態アクセスのため getFieldState を使用
  • formstate-subscribe-to-specific-fields - useFormState で特定のフィールド名に購読
  • formstate-avoid-isvalid-with-onsubmit - onSubmit モードでのボタン状態のため isValid を避ける

7. 統合パターン (中)

  • integ-shadcn-form-import - shadcn Form コンポーネントのインポート元を確認
  • integ-shadcn-select-wiring - スプレッド演算子の代わりに onValueChange で shadcn Select を配線
  • integ-mui-controller-pattern - Material-UI コンポーネントのため Controller を使用
  • integ-value-transform - 型強制のため Controller レベルで値を変換

8. 高度なパターン (低)

  • adv-formprovider-memo - React.memo で FormProvider 子要素をラップ
  • adv-devtools-performance - 本番環境とパフォーマンステスト中に DevTools を無効化
  • adv-testing-wrapper - QueryClient と AuthProvider を使用してテストラッパーを作成

使用方法

詳細な説明とコード例について、個別のリファレンスファイルを参照してください:

  • セクション定義 - カテゴリー構造と影響度レベル
  • ルールテンプレート - 新規ルール追加用テンプレート
  • リファレンスファイル: references/{prefix}-{slug}.md

関連スキル

  • Zod リゾルバーを使用したスキーマ検証については、zod スキルを参照
  • React 19 サーバーアクションについては、react-19 スキルを参照
  • UI/UX フォーム設計については、frontend-design スキルを参照

フルコンパイル版ドキュメント

すべてのルール展開を含む完全なガイド: AGENTS.md

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
pproenca
リポジトリ
pproenca/dot-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/pproenca/dot-skills / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: pproenca · pproenca/dot-skills · ライセンス: MIT