> Как интегрировать компонент с внешней валидацией в React? (React)
Уровень: senior · Роль: frontend · Категория: Технические вопросы
Компании: LoyaltyLabs
Стек: React
> Пример ответа
Для интеграции внешней валидации в React-компонент можно использовать библиотеку React Hook Form с Zod или Yup. Пример с Zod:
JSXimport { useForm } from 'react-hook-form';import { zodResolver } from '@hookform/resolvers/zod';import { z } from 'zod';const schema = z.object({email: z.string().email('Некорректный email'),password: z.string().min(6, 'Минимум 6 символов'),});function LoginForm() {const { register, handleSubmit, formState: { errors } } = useForm({resolver: zodResolver(schema),});const onSubmit = (data) => console.log(data);return (<form onSubmit={handleSubmit(onSubmit)}><input {...register('email')} placeholder="Email" />{errors.email && <span>{errors.email.message}</span>}<input {...register('password')} type="password" placeholder="Пароль" />{errors.password && <span>{errors.password.message}</span>}<button type="submit">Отправить</button></form>);}
Ключевые моменты:
zodResolverсвязывает схему валидации с React Hook Formregisterподключает поля формы к валидацииerrorsсодержит сообщения об ошибках из схемы- Валидация срабатывает при отправке формы и изменении полей
Такой подход обеспечивает декларативную, типизированную и легко поддерживаемую валидацию без ручного управления состоянием ошибок.
> Похожие задачи по frontend
Как оптимизировать тяжелую функцию в React с помощью ленивой инициализации?
Какие инструменты используются для сложных форм с зависимыми полями в React?
Зачем в обработчике onChange использовать event.target.name и event.target.value
Как применяется иммутабельность данных в React
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью