Тёмный
No video :(

Кастомные\самодельные хуки React JS. Валидация 

Ulbi TV
Подписаться 307 тыс.
Просмотров 36 тыс.
50% 1

В этом уроке мы сделаем пользовательские кастомные хуки для валидации и обработки инпутов на React js.
Мой курс "Продвинутый Frontend. В production на React" - ulbitv.ru/fron...
Первое видео про валидацию -
• Валидация форм на Reac...

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

 

6 сен 2024

Поделиться:

Ссылка:

Скачать:

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

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 89   
@lekost13
@lekost13 3 года назад
Топ! Единственный канал по программированию, который я смотрю на обычный скорости х1 :) Быстро, разжёванно и без воды👍
@UlbiTV
@UlbiTV 3 года назад
Ахах, про х1 сильно конечно, сам обычно в х2 смотрю все, спксибо, друг!)
@user-fi9tn1pr4m
@user-fi9tn1pr4m 3 года назад
@@UlbiTV я тоже тебя в 1х смотрю)
@user-hr4my4xs4w
@user-hr4my4xs4w 3 года назад
Иногда х0.5 приходится смотреть
@nicearthes6170
@nicearthes6170 2 года назад
Жизненно), а ещё приходиться ставить на паузу постоянно
@aleksandrmatyka3118
@aleksandrmatyka3118 3 года назад
Отличный канал, не бросайте это дело
@UlbiTV
@UlbiTV 3 года назад
Спасибо друг, с вашей поддержкой, не брошу)
@constantin1693
@constantin1693 3 года назад
Топ, можно ещё margin top на input увеличить position relative, и для ошибки position absolute, чтобы не прыгала форма
@UlbiTV
@UlbiTV 3 года назад
Спасибо за совет:)
@-LKRN
@-LKRN Год назад
Как же ты круто объясняешь, никто с тобой даже рядом и не стоит
@user-ur7ry4ms5u
@user-ur7ry4ms5u 10 месяцев назад
Даже спустя столько времени от даты выпуска лучшее объяснение и пример, спасибо, пробую улучшить)
@Victor-il9gm
@Victor-il9gm 3 года назад
спасибо тебе большой! очень годный контент. Не всё понял, конечно. Но с практикой пойму больше. ты лучший!
@UlbiTV
@UlbiTV 3 года назад
Спасибо огромное) самое главное практика, практика и еще раз практика)
@programming5944
@programming5944 3 года назад
Так рад что нашел твой канал, не представляешь
@UlbiTV
@UlbiTV 3 года назад
Очень рад слышать, спасиб)
@frozeninside5004
@frozeninside5004 3 года назад
Соглашусь с комментами ниже, смотрю всегда на скорости х1, Спасибо !
@UlbiTV
@UlbiTV 3 года назад
Спасибо!
@Sergey_Klimov
@Sergey_Klimov Год назад
Чем углубленнее и сложнее тема, тем меньше просмотров) Лайкос!
@vladyslavvin
@vladyslavvin 3 года назад
спасибо за контент + можно еще так: onChange = {login.onChange} а в useValidation записывать все ошибки в обьект const [errors, setErrors] = useState({})
@user-zk3bc1lf8k
@user-zk3bc1lf8k 3 года назад
Как всегда супер, благодарю ♡ ♡ ♡ ♡ ♡ ♡
@UlbiTV
@UlbiTV 3 года назад
Спасибо за отзыв)
@ilyaprotsenko1023
@ilyaprotsenko1023 3 года назад
Спасибо большое! Ценная информация в доступном и самое главное в хорошо изложенном виде)
@sergsergey4251
@sergsergey4251 3 года назад
Спасибо, очень доходчиво, очень наглядно
@UlbiTV
@UlbiTV 3 года назад
Спасибо!
@s9219871110
@s9219871110 2 года назад
Плюс в копилку моих практических знаний! Спасибо Тимур!
@user-bl4te2kg8v
@user-bl4te2kg8v 3 года назад
Это действительно круто! Большое спасибо
@dmitrykarpovich186
@dmitrykarpovich186 2 года назад
Супер, спасибо , всё четко и понятно, как раз недавно сам писал подобное, и решил узнать как можно было ещё написать)
@rovshen.public
@rovshen.public 3 года назад
Спасибо, попробую сделать
@toivokalev498
@toivokalev498 2 года назад
Спасибо) Мир твоему дому!
@talanovmax
@talanovmax 2 года назад
Огромное спасибо, за старания и вклад!
@user-jf7qs7sc9q
@user-jf7qs7sc9q 3 года назад
Спасибо! Отличный урок!
@mikhailreznichenko8035
@mikhailreznichenko8035 3 года назад
ТоП!
@UlbiTV
@UlbiTV 3 года назад
спасибо!)
@anazkomult
@anazkomult 3 года назад
Привет! Отличные уроки, большое спасибо! Исходники урока на гитхабе не лежат? Было бы гораздо удобнее изучать....
@user-ju5sb3of7l
@user-ju5sb3of7l 3 года назад
люблю!)
@UlbiTV
@UlbiTV 3 года назад
Взаимно!))
@dmitriystoyanov933
@dmitriystoyanov933 3 года назад
Ulbi, объясни кое-что, пожалуйста. В данном примере когда мы покидаем поле - выводится ошибка, но если написать короткий пароль и поле не покидать, нет оповещения что пароль не валидный.. Я пытаюсь эту валидацию использовать у себя в проекте, но хочется чтобы не покидая поле сразу вызвало варнинг что пароль короткий.. С другой стороны тут еще есть isDirty, на нее все завязано, ни туда ни сюда. Что-то не пойму как сделать.
@UlbiTV
@UlbiTV 3 года назад
Лучше использовать formik для валидации, этот ролик снят в целях общего развития
@Vlad-us9xt
@Vlad-us9xt 3 года назад
top!!!
@UlbiTV
@UlbiTV 3 года назад
thx!)
@azamatsatybaldiev7577
@azamatsatybaldiev7577 2 года назад
Тимур спасибо что делишься знаниями!!! кто-нибудь решил как показывать ошибки пользователю не хардкодно? буду благодарен если кто скинет код , многим будет интересно)))
@pseudonim510
@pseudonim510 Год назад
Тоже интересует
@user-yq5md8ej7l
@user-yq5md8ej7l 3 года назад
Спасибо за материал. А зачем используется хук useEffect в валидаторе? Разве не будет каждый раз и так отрабатывать функция useValidation при рендеринге?
@UlbiTV
@UlbiTV 3 года назад
Спаси!) будет, но тут мы явно отслеживаем изменение value, и функция вызывается только в этом случае
@user-yq5md8ej7l
@user-yq5md8ej7l 3 года назад
@@UlbiTV Спасибо. А тебя бы не затруднило поглядеть на код? делаю по твоему примеру но немного изменил, чтобы удобнее ошибки выводить. И у меня в бесконечный цикл возникает и всё. Зависимости в массив useEffect передал, они не изменяются, а бесконечный цикл возникает всё равно из за эффекта. Уже часов 5 сижу не могу понять... Был бы очень благодарен.
@UlbiTV
@UlbiTV 3 года назад
@@user-yq5md8ej7l Давай, присылай, гляну как минутка будет!)
@user-nw5br5jg9k
@user-nw5br5jg9k 2 года назад
@@user-yq5md8ej7l привет, такая же проблема возникла, как решил?
@sega21rus98
@sega21rus98 3 года назад
Как решить проблему с ререндерами в хуках? когда меняется значения в одном поле перерендеривается компонент, функции пересоздаются и вызывается куча useInput-ов опять
@UlbiTV
@UlbiTV 3 года назад
Использовать useRef и переделывать хук для валидации)
@sega21rus98
@sega21rus98 3 года назад
@@UlbiTV да я что-то копался, но решил в итоге не возиться и сделал через formik
@StarkeshBrose
@StarkeshBrose Год назад
@@sega21rus98 😂😂
@user-un7gi2tn5h
@user-un7gi2tn5h 3 года назад
Топ!
@UlbiTV
@UlbiTV 3 года назад
Спасибо)
@nikitauzakov
@nikitauzakov 3 года назад
Привет, подумал над тем как сделать вывод ошибок в компоненте и пришел к выводу, что лучше будет если хук useValidation будет возвращать только одну ошибку, ведь компоненту который её будет выводить(презентационному) в принципе без разницы что-за ошибка там будет. Хотелось бы узнать твое мнение по этому поводу
@UlbiTV
@UlbiTV 3 года назад
Привет!) Зависит от ситуации, с моим вариантом можно по разному обрабатывать ошибки и делать разные стили) Но в большинстве случаев подойдет и то, о чем ты сказал
@natellaverde9260
@natellaverde9260 Год назад
спасибо! все четко
@olegvi5183
@olegvi5183 3 года назад
спасибо, а почему ранее часть логики была сделана через редакс, если можно было все через хуки?
@UlbiTV
@UlbiTV 3 года назад
Благодарю за отзыв, хуки не заменяют редакс, хуки - функционал, редакс - менеджер состояния, да и логики на редакс в этом плейлисте не было, это серия роликов именно про валидацию.
@olegvi5183
@olegvi5183 3 года назад
@@UlbiTV Шикарно быстрый ответ. Спасибо. Я говорил прежде всего про проект файлохранилища, можно ли было все данные собирать исключительно через хуки (useReducer, useState и.т.д)? И есть ли выгода от использования react-redux прослойки по сравнению с хуками?
@UlbiTV
@UlbiTV 3 года назад
@@olegvi5183 Ну смотри, useReducer\useContext уже могут заменить редакс в небольших проектах вполне, useState это локальное состояние компонента, я рассказываю почему это не всегда хорошо в одном из последних роликов про редакс. А те хуки которые мы делали в ролике, они несут в себе исключительно функционал по валидации и никак с редаксом впринципе не связаны)
@soloveichk
@soloveichk 3 года назад
Агонь! Очень полезное видео! Вопрос: Как завалидовать инпут с регуляркой только на числа? const regNumbers = /^[0-9]+$/ regNumbers.test(String(value).toLowerCase()) ? setOnlyNumbers(false) : setOnlyNumbers(true) Такой вариант не работает.
@Max-kr4ie
@Max-kr4ie 3 года назад
//не работает с отрицательными const isNumber = (str) => { var pattern = /^\d+$/; return pattern.test(str); // returns a boolean } //работает с отрицательными const isUpdateNumber = (str) => { var pattern = /^[\+\-]?\d*\.?\d+(?:[Ee][\+\-]?\d+)?$/; return pattern.test(str); // returns a boolean }
@one_word_a_day
@one_word_a_day 2 года назад
Спасибо за видео! А есть примеры как тестировать такие хуки?
@vladpav9948
@vladpav9948 2 года назад
Thanks a lot !!!
@aipronator
@aipronator 3 года назад
Есть ли смысл делать useValidation хуком? Или это для примера сделано? И можно просто описать функцию validation без реактовских хуков и принципиального отличия не будет.
@UlbiTV
@UlbiTV 3 года назад
принципы абсолютно разные есть, и подход может быть разный)
@UlbiTV
@UlbiTV 3 года назад
хуки по сути и есть обычные функции, только с некоторыми правилами
@sergienkoandrey3855
@sergienkoandrey3855 2 года назад
У меня InputValidate не работает от слова совсем. В чём пробелма не пойму, всё время возвращает false
@aniutaani9036
@aniutaani9036 2 года назад
у меня таже проблема
@GrigoryGriko
@GrigoryGriko Год назад
Почему, когда я разделяю код на компоненты, смена кнопки отправки запроса на активную и неактивную перестает работать? У меня есть компоненты, ValidationForm - здесь код валидации, register, в нем компоненты AuthBottom - здеь кнопка, AuthForm - здесь форма. В AuthBottom я создаю объект из email и password, к которым приравниваю результат импортированной функции useInput
@barbatage5078
@barbatage5078 3 года назад
Атдушииииии
@UlbiTV
@UlbiTV 3 года назад
Спаааасибо
@user-tg3bj1vu9i
@user-tg3bj1vu9i Год назад
Спасибо большое! Github - есть
@nastasiya_pant
@nastasiya_pant 6 месяцев назад
а как его использовать в других компонентах? у меня одна валидация формы на 8 страниц
@vitya.obolonsky
@vitya.obolonsky 8 месяцев назад
useEffect 2й лишний
@hedinsss
@hedinsss 2 года назад
У меня тут все таки пара уточнений зачем для задания булевых значений тернарный оператор по булевому? И !!никто не отменял для преобразования всего остального в будево
@pseudonim510
@pseudonim510 Год назад
Ребята, нужно сделать чтобы при вводе даты, например 11/22, косая черта вводилась автоматически, куда можно засунуть этот алгоритм?
@pandalove6795
@pandalove6795 2 года назад
Можно же вместо value.length < validations[validation] ? setMinLengthError(true) : setMinLengthError(false) написать setMinLengthError(value.length < validations[validation) Аналогично и с setEmpty(!value) Или это для читаемости так написано?
@ab7222274
@ab7222274 2 года назад
спасибо большое! отличные уроки. а как сбросить поля формы после отправки?
@NatashaYepanchina
@NatashaYepanchina Год назад
у вас получилось?
@JoKERIFreeStyleI
@JoKERIFreeStyleI Год назад
@@NatashaYepanchina форме надо .reset()
@pseudonim510
@pseudonim510 Год назад
Пожалуйста подкиньте идею, как можно возвращать еще и текст ошибки?
@daniilmitrofanov2986
@daniilmitrofanov2986 3 года назад
Не нужно городить такую регулярку для email. Хорошая регулярка для валидации email это .@.
@NatashaYepanchina
@NatashaYepanchina Год назад
Как сделать в таком случае reset форме?
@romanmed9035
@romanmed9035 2 года назад
а как это так хитро из одного хука вызван другой хук? ведь хук не может быть вызван в другом хуке. как минимум у меня это не получилось, а в канале по реакту мне ответили что так и должно было быть. а тут как-то все работает.
@nelson6783
@nelson6783 2 года назад
я бы задонатил за такие ролики, но пока не зарабатываю деньги для Доната
@nelson6783
@nelson6783 2 года назад
НОЛЬ дизлайков, это уже топчик)
@skyfox9993
@skyfox9993 Год назад
Лучшие туториалы! Благодарочка🤝
Далее
Cristiano Ronaldo Surpassed Me! #shorts
00:17
Просмотров 13 млн
Styled Components & React ПОЛНЫЙ КУРС
23:40
React Custom Hooks: useDebounce - Simply Explained!
10:38