Вместо :invalid, который срабатывает сразу, используйте :user-invalid.
Что это дает:— Валидация срабатывает только после взаимодействия с полем
— Не показываем ошибки в пустой форме при загрузке
— Лучший UX без дополнительного JS
Сейчас на курсы Proglib действует −40%
#readme #css
Please open Telegram to view this post
VIEW IN TELEGRAM
❤16🔥2🥰2
Интересно узнать реальную статистику — от бюджетников до топовых сборок.
— Модель, процессор, RAM, SSD, год.
— Всё работает или есть проблемы?
— Довольны или хотите апгрейд?
Соберём честную картину
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱7🤔3🥰2
API URLPattern — это простой и мощный инструмент для сопоставления и валидации URL.
#stack #js
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2🥰2
Feature-Sliced Design (FSD) — это методология для архитектуры фронтенд-приложений, ориентированная на упрощение понимания кода и его стабильность при постоянных изменениях бизнес-требований.
Структура из 7 слоёв:
1️⃣ app/ — инициализация приложения: роутинг, точки входа, глобальные стили, провайдеры2️⃣ processes/ — устаревший слой, сейчас рекомендуется использовать features и app3️⃣ pages/ — полные страницы приложения или крупные части страницы при вложенной маршрутизации4️⃣ widgets/ — крупные самодостаточные блоки функциональности или UI, реализующие целый сценарий использования5️⃣ features/ — продуктовые функции, которые приносят
бизнес-ценность пользователю6️⃣ entities/ — бизнес-сущности, с которыми работает проект (например, user или product)7️⃣ shared/ — переиспользуемая функциональность, не привязанная к специфике проекта или бизнеса
#blueprint
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🥰3👏3🤔1
💥 Октябрь — месяц апгрейда!
До конца этого месяца действует скидка 40% на все курсы Proglib Academy(кроме AI-агентов, ML для старта и математики) .
Под акцию попал и наш хит — курс «Алгоритмы и структуры данных».
👨💻 Он подойдёт джунам, мидлам и всем, кто хочет писать код осознанно, а не наугад.
👨🏫 Преподаватели — инженеры из Яндекса и ВШЭ.
🎓 Сертификат по итогам обучения — в портфолио.
➖ 47 видеоуроков и 150 практических задач;
➖ поддержка преподавателей и чат;
➖ доступ к материалам на 12 месяцев.
Полная программа курса тут 👈
👉 Остальные курсы
До конца этого месяца действует скидка 40% на все курсы Proglib Academy
Под акцию попал и наш хит — курс «Алгоритмы и структуры данных».
👨💻 Он подойдёт джунам, мидлам и всем, кто хочет писать код осознанно, а не наугад.
👨🏫 Преподаватели — инженеры из Яндекса и ВШЭ.
🎓 Сертификат по итогам обучения — в портфолио.
➖ 47 видеоуроков и 150 практических задач;
➖ поддержка преподавателей и чат;
➖ доступ к материалам на 12 месяцев.
Полная программа курса тут 👈
👉 Остальные курсы
🥰2
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚2🥰1
Казалось бы, простой условный рендеринг. Но вот вам сюрприз.
Когда
items пустой массив, items.length равен 0. В JavaScript 0 — это falsy значение, поэтому выражение 0 && <ul> вернет 0.React рендерит числа, поэтому на экране появится цифра
0!function ProductList({ items }) {
return (
<div>
<h2>Товары</h2>
{items.length > 0 && <ul>
{items.map(item => <li key={item.id}>{item.name}</li>)}
</ul>}
</div>
);
}Или еще лучше:
{!!items.length && <ul>...</ul>}Или тернарный оператор:
{items.length ? <ul>...</ul> : null}
Оператор && возвращает первое falsy значение или последнее truthy:
0 && <Component /> → вернет 0 (React рендерит!)
false && <Component /> → вернет false (React не рендерит)
true && <Component /> → вернет <Component />
React не рендерит: false, null, undefined, true
React рендерит: числа (0, 1, -1), строки, компоненты
#hotfix #react
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1🥰1