{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
❤7👍1👏1
Часто мы думаем, что async/await — панацея от блокировок и лагов. Но на самом деле внутри браузера всё куда сложнее: event loop, microtasks, rendering pipeline.
#under_hood #js
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👏1
#read_watch #react #angular #js
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥1
Когда нужно отсортировать массив объектов сразу по нескольким полям — вместо вложенных if можно сделать так:
const sortBy = (arr, keys) => [...arr].sort((a, b) =>
keys.reduce((res, k) => res || (a[k] > b[k] ? 1 : a[k] < b[k] ? -1 : 0), 0)
);
Где пригодится:
#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥2🌚2
Вместо тонны JS-кода можно писать интерактив прямо в атрибутах:
hx-get
, hx-post
, hx-swap
, hx-trigger
.— Минимум кода, максимум динамики
— Быстрый старт без фреймворка
— Удобно и для пет-проектов, и для прототипов
<button hx-get="/api/articles" hx-target="#list" hx-swap="innerHTML">
Загрузить статью
</button>
<div id="list"></div>
Запрос уходит на сервер → HTML-фрагмент прилетает и рендерится в
#list
.#stack #html
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤔3❤1🔥1
❗ Сегодня премьера
В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным — «ИИ-агенты: новая фаза развития искусственного интеллекта».
В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.
⏰ Это прямой эфир: подключиться можно через лендинг курса.
В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным — «ИИ-агенты: новая фаза развития искусственного интеллекта».
В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.
⏰ Это прямой эфир: подключиться можно через лендинг курса.
😁1🌚1
Представим: старт проекта завтра. Что возьмете в основу?
— Быстрая верстка за счёт утилитарных классов
— Чёткий дизайн-системный язык без лишнего нейминга
— Удобно для больших команд — меньше стиля-разброда
— Стили прямо в компоненте → чище структура
— Динамика через пропсы без костылей
— Отличная интеграция с React, всё на JS
Голосуем реакциями:
👍 — Tailwind
❤️ — Styled Components
#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26❤17🥱4