Тёмный

Валидация форм с react-hook-form в React-приложениях 

Михаил Непомнящий
Подписаться 58 тыс.
Просмотров 70 тыс.
50% 1

Библиотека react-hook-form упрощает создание и обработку форм в React-приложениях. Быстро, просто и эффективно.
00:00 Актуальность библиотеки форм
01:09 Создание проекта
01:41 Хук useForm
03:09 Обработчик отправки формы
04:06 Обязательное поле ввода
06:09 Вывод сообщения об ошибке
08:20 Несколько условий валидации
10:08 Валидация на onBlur
11:18 Очистка формы после отправки
12:29 Обзор API
13:55 Блокировка кнопки отправки
14:47 Поддержка UI-библиотек
Мои курсы по вебу с купонами:
✅ mishanep.com/
📢 Поддержка канала:
www.tinkoff.ru/rm/nepomnyasch...
paypal.me/mishanep

Опубликовано:

 

23 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 117   
@gritsienkooleg3447
@gritsienkooleg3447 Год назад
Для того, чтобы грамотно и без воды объяснить суть на понятных примерах, нужно хорошо разобраться в теме. Что у вас прекрасно получается) Спасибо за ваш профессионализм, Михаил!
@vladimirplyukhin5234
@vladimirplyukhin5234 2 года назад
Михаил, большая честь учиться по Вашим урокам. Очень эффективно.
@thomasmanov
@thomasmanov 2 года назад
Спасибо огромнейшее за контент! С удовольствием смотрю новые видео и иногда возвращаюсь к старым, каждый раз нахожу ту информацию что искал, а так же что то новое! От души.
@twentysixhugs
@twentysixhugs 2 года назад
Очень хорошо рассказываешь, что позволяет быстро во всем разобраться. Спасибо.
@elenaizmaylova9331
@elenaizmaylova9331 Год назад
Просто отличнейшее объяснение!!! Спасибо огромное! Всего Вам самого наилучшего!
@_oxios_
@_oxios_ 2 года назад
Спасибо за обзор и примеры) Было бы интересно посмотреть уроки по углубленной работе с хукФорм.
@alexanderwebdev5558
@alexanderwebdev5558 2 года назад
Михаил спасибо вам за ваши видео!!! Много смотрел и учился по разным видео но ваши видео и объяснения очень помогли !!!
@user-bp7jb5of5d
@user-bp7jb5of5d 2 года назад
Михаил, спасибо за урок. Очень полезная библиотека. Обязательно буду использовать ее в своих проектах.
@Denis-pu4bt
@Denis-pu4bt 2 года назад
Библиотека обновилась и ваш урок очень кстати, спасибо за вашу работу, лайк и подписка)
@darkcasper1488
@darkcasper1488 Год назад
Михаил, спасибо Вам огромное за ваши видео уроки!!!!
@user-hq3em8iy9c
@user-hq3em8iy9c Год назад
Коротко и очень понятно. Здорово объясняете!! Спасибо вам, Михаил!!
@mariabogdanova9759
@mariabogdanova9759 Год назад
Большое спасибо! Все очень понятно, можно быстро разобраться) И отдельное спасибо за приятную речь и отсутствие воды)
@mrrappbit
@mrrappbit 6 месяцев назад
Михаил, у вас очень классные видео, все подробно и понятно, спасибо ❤
@RonaMelone
@RonaMelone 2 года назад
Михаил, это чудесно! Мне больше понравилось, чем видео на оф. сайте. Плюс ваша ремарка о поддержке UI-библиотек оказалась весьма кстати. Не нашла на их сайте, а вы нашли. Спасибо😘
@arispaskalov3471
@arispaskalov3471 2 года назад
Спасибо большое! Один из лучших русскоязычных гайдов
@Zubairavvv
@Zubairavvv 2 года назад
Михаил спасибо за ваши видео очень понятные и полезные, удачи вам!
@Gombo_Batuev
@Gombo_Batuev 4 месяца назад
Как же грамотно все объяснено. Спасибо вам за такую работу!
@yevgenymakkaveev7708
@yevgenymakkaveev7708 2 года назад
Большое спасибо за ваши видео и курсы. Во многом благодаря им получил вчера первый оффер!
@mishanep
@mishanep 2 года назад
Поздравляю, Евгений! Очень рад за вас!
@Sashaa
@Sashaa Год назад
сколько учился до первого офера? как сейчас дела?
@yevgenymakkaveev7708
@yevgenymakkaveev7708 Год назад
@@Sashaa Привет, только увидел оповещение об ответе. Учился я с большими перерывами, но активной учебы было пол года, прямо сутками сидел уже сам. До этого были курсы, в числе их и занятие у автора канала, которые задали вектор, но полностью погрузится тогда не удалось и если честно далеко не все понял в полной мере, что читали. Наверное тут главно не бросать и не ждать что с первого раза все усвоится. Хорошо если и будет так, но мне кажется во многом влитая в первые ошибки и сломанные программы ты начинаешь куда лучше понимать как сделать что бы работало, а уже потом учишься делать что бы и работало и было красиво и правильно. Сейчас дела относительно неплохо, работаю в стартапе с довольно интересными проектами.
@Sashaa
@Sashaa Год назад
@@yevgenymakkaveev7708 спасибо, удачи вам!
@user-ob6si4ii2h
@user-ob6si4ii2h Год назад
Добрый вечер! Подскажите, как искали работу. Есть ли у вас портфолио? Что было на собеседовании? Когда захожу на hh и смотрю требования, то думаю, что никогда не найду работу
@user-bx7rm2rp9g
@user-bx7rm2rp9g 26 дней назад
Михаил, большое спасибо за видео! Все очень понятно и без воды.
@sergeykudryashov9097
@sergeykudryashov9097 2 года назад
Спасибо за ролик. Все очень понятно
@Natalia-ph
@Natalia-ph 2 года назад
Спасибо за столь полезную информацию
@annabielskaya1626
@annabielskaya1626 3 месяца назад
Спасибо за видео - подача просто шикарная, очень помогло 🔥
@vichislav_tv
@vichislav_tv Год назад
отличная информация отлично подана, спасибо большое!
@viktornaymayer8882
@viktornaymayer8882 2 года назад
Спасибо, отличная подача материала :)
@user-qh2em5cb2i
@user-qh2em5cb2i 5 месяцев назад
Профессионал своего дела😎, спасибо вам
@user-jn5cb4zb7f
@user-jn5cb4zb7f Год назад
огромное спасибо - это прекрасное и очень толковое объяснение))
@user-yj4wt8nr6v
@user-yj4wt8nr6v Год назад
Спасибо за видео, то что нужно!
@victormog
@victormog 2 года назад
Спасибо! Если будет возможность, расскажи, пожалуйста, про использование отдельных библиотек валидации и интернационализации в React.
@user-wq8gu3zj2q
@user-wq8gu3zj2q 11 месяцев назад
Супер! Спасибо Вам большое!
@force_of_abstinence
@force_of_abstinence 2 года назад
Спасибо, пригодилось на проекте!))
@purplebaby15
@purplebaby15 8 месяцев назад
Отличная подача, обращение к документации.Думаю будет понятно даже чайникам которые ещё даже не работали с React'ом.Спасибо
@Bliqu1
@Bliqu1 2 года назад
Спасибо большое за ролик, очень много времени сэкономили
@olfi1728
@olfi1728 2 года назад
Спасибо, всё чётко и понятно.
@user-dz1mb8cj4d
@user-dz1mb8cj4d Год назад
Спасибо! Устала искать ошибку, почему все не работало, а тут одно видео и счастье
@nh42so42
@nh42so42 8 месяцев назад
очень хороший гайд, спасибо!
@gulzatkoshbaeva2162
@gulzatkoshbaeva2162 11 дней назад
Thank you, very easy to catch up.
@unknown.6914
@unknown.6914 4 месяца назад
Отличное обьяснение, спасибо!
@user-fq4pc7fm2z
@user-fq4pc7fm2z Год назад
Спасибо за урок!
@zahodiChe
@zahodiChe 6 месяцев назад
Спасибо! То, что я искал
@user-ht4es2nw7k
@user-ht4es2nw7k Год назад
Спасибо! Кратко и понятно. На первый взгляд проще чем Formik
@user-mu8by2yg3g
@user-mu8by2yg3g 2 года назад
ОООО СПЕР ! я как раз делаю тестовое и там требуют использовать RHF. Так то основное уже запилил, но будет здорово проверить себя и допилить. Ставлю лайк и начинаю смотреть.
@user-es7mq2kk3g
@user-es7mq2kk3g Год назад
Спасибо. Очень крутое видео)
@user-ty4bl8ve7h
@user-ty4bl8ve7h Год назад
Очень помогли. Спасибо.
@user-el5ls2cq1y
@user-el5ls2cq1y Год назад
Ой ой ой! Красавчик! Лайк за крутое объяснение!
@maxgib2489
@maxgib2489 Год назад
Мне это напомнило чём-то работу с Form от старого AntD, ролик бомба!
@jkisazhm5612
@jkisazhm5612 10 месяцев назад
Супер мега харош
@newfeel.305
@newfeel.305 Год назад
Супер!
@user-if2fo6yr6w
@user-if2fo6yr6w Год назад
Был очень полезен!
@sergeyvarfolomeev2627
@sergeyvarfolomeev2627 2 года назад
Спасибо, Мужик! Очень круто! Мой инглиш оставляет желать лучшего и без твоего урока, так и не смог нормально прочитать документацию, а переводчик просто ЖЖЁТ и путает еще сильнее
@norwinlol
@norwinlol 2 года назад
Лайк не глядя)
@user-tl2ut9pu4k
@user-tl2ut9pu4k 2 дня назад
Ну ты парен гигант, 💣❤‍🔥👌💪👋👏
@mv_19v77
@mv_19v77 2 года назад
Nice tutorial.... Very helpful
@olehy5000
@olehy5000 2 года назад
Спасибо! Возьму на вооружение. Намного проще чем формик и юп).
@user-iw7wr5yk1d
@user-iw7wr5yk1d 5 месяцев назад
спасибо очань чётка коротко и ясно
@nikomunikabelen8540
@nikomunikabelen8540 11 месяцев назад
спасибо!
@SerhiiNesterov
@SerhiiNesterov 2 года назад
Спасибо!
@dmitriymovchan6563
@dmitriymovchan6563 2 года назад
О, я как раз сейчас впервые на проекте начал испольтзовать react-hook-form.
@shoxerpetrosyan8678
@shoxerpetrosyan8678 Год назад
spasibo za video,,!!!!!
@vladislav_pikiner
@vladislav_pikiner 2 года назад
самый недооценённый канал на ютубе по тематике)
@mak_whisk
@mak_whisk Год назад
Спасибо
@user-vv5mu7yc2b
@user-vv5mu7yc2b 2 года назад
Ещё из плюсов - она хорошо работает в связке с yup
@Aegon_Targarien
@Aegon_Targarien 2 года назад
Расскажите пожалуйста как пользоваться eslint+prettier в проектах
@ninshu1138
@ninshu1138 2 года назад
Что думаешь про antd forms? Если в проекте уже есть antd, стоит ли тянуть еще либу для управления формами?
@dmytrovoronov9320
@dmytrovoronov9320 2 года назад
Теперь не хватает Formik и Yup ))
@thehuman9604
@thehuman9604 9 месяцев назад
Сделай плизвидео про RHF + Yup. Для примера думаю идеально подойдет форма регистрации с несколькими шагами. Спасибо
@velikorossnationalist4259
@velikorossnationalist4259 2 года назад
А стили к форме какие применили?
@user-bh2qf9qp4s
@user-bh2qf9qp4s Год назад
Спасибо за объяснения , подскажите пожалуйста есть инпут пароля и при клике на иконку , надо поменять type инпута , как правильно будет обратиться к нему ? Пока сложно перейти с чистого js в react
@mishanep
@mishanep Год назад
Попробуйте через ref. Посмотрите в сторону хука useRef
@magaboy7232
@magaboy7232 2 года назад
а как передавать значения во вложенные элементы ?
@bigboy3085
@bigboy3085 2 года назад
Миша, пожалуйста, сделай видео по React-Query. Твои примеры и объяснения с наслаждением смотришь, а на русском сегменте Ютуба про эту библиотеку ничего нет, либо говно снимают)
@mishanep
@mishanep 2 года назад
Никогда не работал c React Query, только с похожим на него RTK Query, что вместе с Redux Toolkit идет (на канале есть видео про него).
@MrDobro1214
@MrDobro1214 Год назад
Добрый день. Спасибо большое за видео. А с Валидацией пароля будет такая же логика?
@MrDobro1214
@MrDobro1214 Год назад
Или к примеру я хочу сделать проверку пользователя, "Введены некорректные данные" или же "Данный пользователь уже зарегистрирован" или "Некорректный логин или пароль"
@fellow3251
@fellow3251 2 года назад
Hola! Подскажите пожалуйста, куда необходимо прописать функцию, которая отправляет данные(email, password) для авторизации?
@mishanep
@mishanep 2 года назад
Hola! Если правильно понимаю задачу, то в хэндлер сабмита формы.
@alexmelentev9161
@alexmelentev9161 2 года назад
а подскажите кто-нибудь как сделать чтобы при первом рендере поля, которые необходимо заполнить выделялись как-то, ну точнее чтобы ошибка "поле необходимо заполнить" появлялась сразу при открытии страницы, а не после клика на инпут, потому что формы бывают большими и кнопка задисэйблена, но какое поле точно нужно ввести не понятно, HELP anybody!
@maxet2374
@maxet2374 2 года назад
Оч логично написать то же но с сохранением состояния в Redux
@never.m1nd
@never.m1nd День назад
Спасибо за ролик, действительно упрощает работу! Михаил, насколько правильным является валидация форм через redux tool kit? Складывать при изменения формы ошибки и значения в стейт и доставать в нужно месте? Кто то пишет, что это плохая практика, кто то нормальная. Вы как считает?
@mishanep
@mishanep День назад
Приветствую. Смотря что вы считаете правильным местом. Если информация об ошибках внутри самой формы, то редакс будет избыточен. Если во всплывающем окне, например, то может быть оправдано.
@never.m1nd
@never.m1nd 12 часов назад
@@mishanep Спасибо! Я просто наткнулся на такую библиотеку как redux form, как оказалось автор свернул работу по ней со словами Generally, please don't store live form data in Redux. Поэтому я подумал может редакс вообще не подходит под живую валидацию.
@arthurq7843
@arthurq7843 7 месяцев назад
Что популярнее React Hook Form или Formik?
@cliveriddell5700
@cliveriddell5700 2 года назад
Добрый день, Михаил. Будет ли обучающее видео по redux-saga?
@mishanep
@mishanep 2 года назад
Пока не планирую. Видел в сети в этом году целый цикл на эту тему, и повторяться не хочу. Точно где не скажу, мне в твиттер ленте вылетали выпуски, их там более десятка по саге.
@Norby-Norby
@Norby-Norby Год назад
Подскажите пож как можно разделить форму, чтоб разбить по компонентам и в отдельном файлике прописать валидацию к инпутам? Сам уже несколько дней ковыряю - одна сплошная ошибка (ругается на реф, не видит валидацию). Может было бы проще, но я использовал материал юай в довесок :))). Документация хук форм тяжело дается, английский слабоват. П.С. Спасибище за крутяцкий контент. Все мега доступно, понятно и конструктивно)
@SAID-bb6zv
@SAID-bb6zv 7 месяцев назад
да но почему когда прописываю (const {} = useForm()) вечно ругается на useRef если даже я его не прописывал
@SmirnovYT
@SmirnovYT Год назад
Спасибо! Ребят кто подскажет, что значит знак вопроса(errors?.firstName?. и тд) или это тернарное выражение? Просто не особо понимаю логику написания его тут.
@promoabys
@promoabys Год назад
Это из TypeScript ?. оператор для доступа к необязательным свойствам TypeScript может немедленно остановить выполнение некоторых выражений, если мы столкнемся с нулевым или неопределенным значением. В ином случае будет ошибка вылетать об отсутствии данных.
@SmirnovYT
@SmirnovYT Год назад
@@promoabys Спасибо)
@Asgyr
@Asgyr 2 года назад
а есть урок или будет урок с методом входа в приложение через jwt token ?
@mishanep
@mishanep 2 года назад
Есть базовый пример авторизации через Firebase ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-ivtbRBEjLW8.html Там упрощенный вариант jwt.
@Diyaz86
@Diyaz86 2 года назад
А почему обязательно нужно поставить знак вопроса чтобы работало? errors.login?.type
@mishanep
@mishanep 2 года назад
Затем что если у вас не будет ошибки в поле login, то error.login будет равен undefined, а при попытке запросить в таком случае errors.login?.type приведет к ошибке. Потому что у undefined не может быть никаких ключей через точку. Такая запись называется optional chainig и является современной альтернативой проверки errors.login && errors.login.type
@Diyaz86
@Diyaz86 2 года назад
@@mishanep Спасибо за разъяснение!
@Chambo015
@Chambo015 Год назад
Вопрос, а как бороться с пробелами ? Если вместо 5 символов передали 5 пробелов
@mishanep
@mishanep Год назад
В js для строк есть метод trim, который очищает лишние пробелы.
@Chambo015
@Chambo015 Год назад
@@mishanep Уже нашел решение с помощью setValue и там делаю trim(). Чтобы валидация не учитывала пробелы как символ
@user-hd3ov5lj1u
@user-hd3ov5lj1u 2 года назад
Михаил. будут ли видео о formik?
@mishanep
@mishanep 2 года назад
Пока не планирую.
@user-hd3ov5lj1u
@user-hd3ov5lj1u 2 года назад
@@mishanep жаль(
@diggerdog001
@diggerdog001 8 месяцев назад
А на чистом JS кто нибудь щас пишет валидацию формы в продакшене?
@mishanep
@mishanep 8 месяцев назад
Конечно. Немало сайтов, вообще не использующих фреймворки - одна ванилла. Оно сложнее, но работает обычно быстрее.
@user-xq8qk7ss8i
@user-xq8qk7ss8i 2 года назад
А библиотека для валидации форм оказалась не такой уж непонятной. До этого всегда писал валидацию самостоятельно.)
@mishanep
@mishanep 2 года назад
Да, очень удобно :)
@svetultus_
@svetultus_ 2 года назад
Хорошее видео, но очень мелко - пытка для глаз
@anonymousNouname
@anonymousNouname 2 года назад
Для type="url" нет валидации. Чтоб она работала надо добавить инпуту type="url" и minLength в register, указать номер не меньше 5, вот так: тогда будет доступен typeMismatch
@anonymousNouname
@anonymousNouname 2 года назад
и еще... mode: 'onChange' не будет работать, если у инпута стоит обработчик 'onChange'
@mishanep
@mishanep 2 года назад
Там onChange тоже по-хитрому можно задавать. Можно добавить свою обработку, сохранив ту, что использует библиотека. В документации были соответствующие примеры. По поводу url, лучше наверное регулярку правильную подобрать.
@armorunit6970
@armorunit6970 Год назад
Спасибо!
Далее
React Hook Form - Complete Tutorial (with Zod)
28:22
Просмотров 94 тыс.
React Hook Form (+ Zod) - Complete Tutorial
31:21
Просмотров 88 тыс.