Фронтенд Курилка
Даниил Бобров, Frontend-developer | Vue | Nuxt | React | JS | TS | GIT · 12.06
Yup - js библиотека для валидации.
Сегодня, делюсь с вами библиотекой для валидации, которую опробовал как в коммерческом проекте, так и в учебном.
Yup позволяет валидировать не только конкретные ui элементы, такие как формы, но и в целом js код. Удобно, это в любых случай, например мы хотим убедиться, что переданная строка в от пользователя является ссылкой, а не просто набором символов.
Yup легко настраивается и имеет множество готовых пресетов. Для меня самым любимым является то, что работу с валидацией можно вынести в отдельный модуль, который можно расширять по мере наполнения полей в объекте.
Раньше, я работал с валидаторами в духе vee-validate, которые популярны среди vue.js разработчиков, но делать валидацию внутри компонента это вредит читаемости кода. Компонент итак набит все возможными скриптами, которые выполняют разные роли, а тут еще валидация, которая может занять 50-60 строк кода.
Текст ошибок, легко изменяется - мы либо добавляем свой текст внутри функции валидатора или определяем свои локали.
Возникает резонный вопрос: зачем использовать отдельную библиотеку, если можно использовать регулярные выражения? Если валидация не требует большего описания, то думаю не стоит устанавливать библиотеку, но если каждая страница требует валидацию от 1 модели или более, то нужно организовать это дело аккуратно и желательно в едином месте. Бонусом вы получаете готовые пресеты для большинства вопросов, а там где не хватает готовых, удобно дописать свое.
· 12.06
1. Vee-validate помогает инкапсулировать функции обработчиков событий для инпута
2. Зачастую это не 60 строк кода, а 10-20, а с yup придется писать обработчики событий для ваших инпутов (что выйдет даже больше, чем в 60 строк)
3. «Но, если делать валидацию внутри компонента, то это вредит читаемости» Вынесите валидации в композицию) Вы можете сделать это с помощью vee-validate или yup (или вообще zod, неважно). С vee-validate у вас просто уменьшится количество повторяемого кода для обработчиков событий). Если вы будете использовать yup/zod, то кода меньше точно не станет)
ответить
Фронтенд Курилка
12.06
Хорошие рекомендации!
ответить
еще контент автора
еще контент автора
Фронтенд Курилка
Даниил Бобров, Frontend-developer | Vue | Nuxt | React | JS | TS | GIT · 12.06
войдите, чтобы увидеть
и подписаться на интересных профи