{items.map((item, index) => (
<li key={index}>
<input value={item.name} />
</li>
))}
<li key=0>
остался тем же.В итоге сбивается фокус и теряется ввод.
{items.map((item) => (
<li key={item.id}>
<input value={item.name} />
</li>
))}
id
сохраняет правильное соответствие элементов, и UI ведёт себя предсказуемо.index
только если список точно статичен (например, меню без состояния). В остальных случаях всегда нужен стабильный уникальный ключ (id).#hotfix #react
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍1👏1
На картинке 3 кейса:
— Всегда указывайте все зависимости эффекта
— Если зависимость нестабильна (объект/функция) → мемоизируйте
(useMemo, useCallback)
— Примитивы (строка, число) в deps — самый безопасный вариант
#hotfix #react
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍2🔥2
На картинке 3 ситуации:
— Никогда не спредьте всё подряд в корень
— Лишние атрибуты → лишние баги
— Чётко указывайте только то, что действительно нужно в DOM
#hotfix #react
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👾2
Многие используют эти псевдоклассы для управления состояниями форм и элементов, но есть ловушки:
1.
:focus-within
реагирует только на фокус внутри самого элемента, не на внешние события.2.
:not()
может «съесть» вложенные селекторы неправильно — порядок и специфичность важны.3. Если элемент содержит другие интерактивные элементы (кнопки, ссылки), браузер может вести себя по-разному.
— Использовать более точные селекторы и отдельные правила для состояния фокуса.
— Проверять вложенные элементы:
:focus-within
смотрит любые потомки, не только input.— Не смешивать
:not()
с сложными вложенными селекторами — часто проще добавить класс через JS.#hotfix #css
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1🥱1👾1
Чтобы не теряться в потоке постов, мы собрали удобную навигацию по тегам. Всё нужное — в пару кликов:
#readme — код-сниппеты, CSS-трюки, JS one-liners, команды Git/CLI
#hotfix — реальные баги и проблемы с объяснением, как их исправить
#blueprint — high-level концепции и паттерны
#under_hood — разбираем, что происходит внутри фреймворков и браузера
#stack — обзоры библиотек, плагинов, инструментов
#release_digest — все важное за неделю/месяц в одном месте: новые версии фреймворков, релизы библиотек, ссылки и краткие описания
#code_challenge — интерактивные задачи с разбором на следующий день
#code_battle — столкновение технологий или подходов
#pixel_pause— мемы, юмор и забавные истории из фронтенд-жизни
#career_merge — советы по резюме, soft skills, вопросы с собеседований, обсуждение зарплат
#ux_review — изучаем интерфейсы и UX известных сайтов и приложений
#read_watch — подборки полезных материалов: статьи, конференции, GitHub, книги
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4