pproenca/dot-skills

react-hook-form

React Hook Form performance optimization for client-side form validation using useForm, useWatch, useController, useFieldArray, the subscribe() API, and the Watch / FormStateSubscribe / FieldArray render-prop components.

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/pproenca/dot-skills --skill react-hook-form

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

React Hook Form Best Practices by Community

Comprehensive performance optimization guide for React Hook Form applications. Contains 35 rules across 7 categories, each naming a decision that goes wrong by default. Verified against react-hook-form 7.82.0.

When to Apply

Reference these guidelines when:

  • Writing new forms with React Hook Form
  • Configuring useForm options (mode, defaultValues, validation)
  • Subscribing to form values with watch / useWatch / subscribe
  • Integrating controlled UI components (MUI, shadcn, Ant Design)
  • Managing dynamic field arrays with useFieldArray
  • Handling async submit, server errors, and submit lifecycle state
  • Reviewing forms for performance issues

When NOT to Use This Skill

  • React 19 Server Actions / `useActionState` — use the react-19 skill instead
  • Deeply nested, fully type-safe forms — TanStack Form may be a better fit for forms with complex nested schemas; this skill assumes you've already chosen RHF
  • Single-input or trivial forms — uncontrolled <form> + FormData is often simpler than pulling in any library

Rule Categories by Priority

PriorityCategoryImpactPrefix
1Form ConfigurationCRITICALformcfg-
2Field SubscriptionCRITICALsub-
3Controlled ComponentsHIGHctrl-
4Validation PatternsHIGHvalid-
5State ManagementMEDIUM-HIGHformstate-
6Field ArraysMEDIUM-HIGHarray-
7Integration PatternsMEDIUMinteg-

Quick Reference

1. Form Configuration (CRITICAL)

  • formcfg-default-values - Always Provide defaultValues for Form Initialization
  • formcfg-useeffect-dependency - Depend on formState Slices, Not on formState Itself
  • formcfg-validation-mode - Justify Any mode Other Than the Default onSubmit
  • formcfg-revalidate-mode - Keep Default reValidateMode Unless Validation Is Expensive
  • formcfg-should-unregister - Keep shouldUnregister Off Unless Hidden Fields Must Leave the Payload
  • formcfg-transformed-values-generic - Pass the Third useForm Generic When the Resolver Transforms Values
  • formcfg-async-default-values - Use Async defaultValues for Server Data
  • formcfg-disabled-prop - Use the HTML disabled Attribute for Visual Disabling, Not register's disabled Option
  • formcfg-values-prop - Use the values Prop to Keep a Form in Sync with Server Data

2. Field Subscription (CRITICAL)

  • sub-avoid-watch-in-render - Avoid Calling watch() in Render for One-Time Reads
  • sub-memo-cannot-beat-context - React.memo Cannot Stop Context-Driven Re-renders Under FormProvider
  • sub-subscribe-outside-react - Use subscribe() to React to Form Changes Outside the React Lifecycle
  • sub-render-prop-components - Use the Render-Prop Components to Isolate Re-renders Without a Child Component
  • sub-useformcontext-sparingly - Use useFormContext Sparingly for Deep Nesting
  • sub-usewatch-over-watch - Use useWatch Instead of watch for Isolated Re-renders
  • sub-watch-specific-fields - Watch Specific Fields Instead of Entire Form

3. Controlled Components (HIGH)

  • ctrl-usecontroller-isolation - Isolate Controlled Inputs in Dedicated Child Components
  • ctrl-controller-field-props - Wire Controller Field Props Correctly for UI Libraries

4. Validation Patterns (HIGH)

  • valid-resolver-caching - Build the Validation Schema Once, Outside the Render Path
  • valid-valueasnumber-empty-nan - Handle the NaN valueAsNumber Produces for an Empty Input
  • valid-server-errors - Surface Server Errors via setError('root.serverError', ...)
  • valid-delay-error - Use delayError to Debounce Rapid Error Display

5. State Management (MEDIUM-HIGH)

  • formstate-avoid-isvalid-with-onsubmit - Avoid isValid with onSubmit Mode for Button State
  • formstate-destructure-formstate - Read Every formState Property You Depend On During Render
  • formstate-reset-default-values - Rebase Defaults with resetDefaultValues After a Successful Save
  • formstate-handlesubmit-oninvalid - Use handleSubmit's Second Argument to Handle a Rejected Submit
  • formstate-useformstate-isolation - Use useFormState for Isolated State Subscriptions
  • formstate-async-submit-lifecycle - Wrap Async Submit Handlers in try/catch and Reset on isSubmitSuccessful

6. Field Arrays (MEDIUM-HIGH)

  • array-separate-crud-operations - Separate Sequential Field Array Operations
  • array-use-field-id-as-key - Use field.id as Key in useFieldArray Maps
  • array-unique-fieldarray-per-name - Use Single useFieldArray Instance Per Field Name
  • array-disabled-silently-noops - useFieldArray's disabled Option Makes Every Mutation a Silent No-op

7. Integration Patterns (MEDIUM)

  • integ-value-transform - Transform Values at Controller Level for Type Coercion
  • integ-shadcn-form-import - Verify shadcn Form Component Import Source
  • integ-shadcn-select-wiring - Wire shadcn Select with onValueChange Instead of Spread

How to Use

Read individual reference files for detailed explanations and code examples:

Related Skills

  • For schema validation with Zod resolver, see zod skill
  • For React 19 server actions, see react-19 skill
  • For UI/UX form design, see frontend-design skill

Full Compiled Document

For the complete guide with all rules expanded: AGENTS.md

관련 작업

같은 저장소의 Skills

더 많은 Skills

모든 Skills
pproenca
커뮤니티

audio-voice-recovery

Audio forensics and voice recovery guidelines for CSI-level audio analysis. This skill should be used when recovering voice from low-quality or low-volume audio, enhancing degraded recordings, performing forensic audio analysis, or transcribing difficult audio. Triggers on tasks involving audio enhancement, noise reduction, voice isolation, forensic authentication, or audio transcription.

설치 수
1
GitHub Stars
218
업데이트
8월 15일
pproenca
커뮤니티

msw

MSW (Mock Service Worker) best practices for API mocking in tests (formerly test-msw). This skill should be used when setting up MSW, writing request handlers, or mocking HTTP APIs. This skill does NOT cover general testing patterns (use test-vitest or test-tdd skills) or test methodology.

설치 수
1
GitHub Stars
218
업데이트
8월 15일
pproenca
커뮤니티

zod

Zod schema validation best practices for type safety, parsing, and error handling. This skill should be used when defining z.object schemas, using z.string validations, safeParse, or z.infer. This skill does NOT cover React Hook Form integration patterns (use react-hook-form skill) or OpenAPI client generation (use orval skill).

설치 수
2
GitHub Stars
218
업데이트
8월 15일
pproenca
커뮤니티

vitest

Vitest testing framework patterns for test setup, async testing, mocking with vi., snapshots, and test performance (formerly test-vitest). This skill should be used when writing or debugging Vitest tests. This skill does NOT cover TDD methodology (use test-tdd skill), API mocking with MSW (use test-msw skill), or Jest-specific APIs.

설치 수
16
GitHub Stars
215
업데이트
8월 15일