유튜브블로그Top 10
내 프로필

데브허브 안내
소개업데이트 소식

데브허브 커뮤니티

How To Use Shadcn’s NEW Field Component Like a Senior Dev

Web Dev Simplified

2025. 10. 21.

0

#frontend
  • Shadcn의 기존 Form 컴포넌트가 폐기되고, 라이브러리 독립적인 새로운 Field 컴포넌트로 대체되었습니다. 🔄
  • Field 컴포넌트는 React Hook Form 및 Tanstack Form과 같은 다양한 폼 라이브러리와 쉽게 통합될 수 있도록 설계되었습니다. 🧩
  • 목표는 지저분한 상용구 코드를 줄이고, 재사용 가능하며 유지보수하기 쉬운 간결한 폼 코드를 작성하는 것입니다. ✨
  • 텍스트 상자, 선택 요소, 체크박스 그룹, 동적 배열 필드 등 다양한 폼 요소를 지원하며, 강력한 오류 메시지 처리 기능을 제공합니다. 🏗️
  • ZOD를 활용한 스키마 유효성 검사와 Next.js 서버 액션을 통한 폼 제출 처리를 시연합니다. 🛡️
  • 핵심 구성 요소는 FieldGroup (요소 간 간격), Field (레이블, 입력, 오류를 감싸는 래퍼), FieldLabel, Input (또는 사용자 정의 컴포넌트), FieldError입니다. 🧱
  • React Hook Form의 Controller를 사용하여 Field 컴포넌트를 폼 상태에 연결하며, render 속성을 통해 fieldfieldState 객체에 접근하여 동적인 동작을 구현합니다. 🔗
  • data-invalid 속성을 통해 필드의 유효성 상태에 따른 시각적 스타일을 적용하고, htmlForid를 사용하여 레이블과 입력 필드의 접근성을 높입니다. 🎨
  • field 객체에서 제공하는 name, onChange, onBlur, value, ref, disabled 등의 속성을 입력 필드에 전달하여 폼 상태와 동기화합니다. 📡
  • aria-invalid 속성을 사용하여 입력 필드의 유효성 상태를 보조 기술에 알리고 시각적 피드백을 제공합니다. 🗣️
  • fieldState.invalidfieldState.error를 활용하여 유효하지 않은 경우에만 오류 메시지를 표시하며, 폼 제출 성공 시 form.reset()으로 폼을 초기화합니다. ✅
  • 선택적 description 필드를 추가하고 ZOD의 transform 기능을 사용하여 빈 문자열을 undefined로 변환하는 고급 유효성 검사 패턴을 보여줍니다. 📝

Recommanded Videos