Dùng @hookform/resolvers/zod với zodResolver: const { register, handleSubmit } = useForm({ resolver: zodResolver(schema) }).
- Define schema:
const schema = z.object({ email: z.string().email(), age: z.number().min(18) }). - Errors type-safe từ Zod được truyền vào formState.errors.
- Cách tiếp cận hiện đại nhất cho type-safe forms.
Use @hookform/resolvers/zod with zodResolver: const { register, handleSubmit } = useForm({ resolver: zodResolver(schema) }).
- Define the schema:
const schema = z.object({ email: z.string().email(), age: z.number().min(18) }). - Type-safe errors from Zod flow directly into formState.errors.
- This is the most modern approach for building fully type-safe forms.