Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
22.1K subscribers
2.58K photos
170 videos
39 files
4.96K links
Все самое полезное для фронтенда в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/77178ed4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
Download Telegram
🔥 Не пропустите событие осени для AI-комьюнити

24 сентября, 19:00 Мск — бесплатный вебинар с Максимом Шаланкиным «ИИ-агенты: новая фаза развития искусственного интеллекта»

😤 Пока все спорят, «боты это или нет», мы покажем, как работают настоящие агенты: с планированием, инструментами и памятью. За час Максим разберёт:
— почему ИИ-агенты сейчас на пике инвестиций
— чем они отличаются от ChatGPT и обычных моделей
— цикл агента: восприятие → планирование → действие → обучение
— живое демо простого агента
— как бизнес уже получает ROI до 80%

⚡️ Хотите спросить у Максима всё, что обычно остаётся «за кадром»? Ловите шанс — только в прямом эфире.

Мест мало, регистрация закроется, как только забьём комнату
🔥4
🔥 Топ-вакансий для фронтендеров за неделю

Разработчик фронтенда — от 300 000 до 490 000 ₽, офис/гибрид (Москва)

JS React Frontend Developer — от 4 000 $, удаленно (Москва)

Frontend разработчик (React) — удаленно (Санкт-Петербург)

MultiTrack для фронтенд-разработчиков — от 250 000 ₽, офис/гибрид (Москва)

Senior WEB Developer — от 300 000 ₽, удаленно (Москва)

🔜 Еще больше топовых вакансий — в нашем канале Javascript jobs

🐸 Библиотека фронтендера

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚3🔥2
😢 Ключи в списках: почему index ломает

Было:


{items.map((item, index) => (
<li key={index}>
<input value={item.name} />
</li>
))}


➡️ Переставили элементы → React думает, что <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
😴 Под капотом JS: как event loop ломает ожидания

Часто мы думаем, что 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
11👏1
💳 Подборка свежих статей

1️⃣ Кастомизация Keycloak

➡️ Для тех, кто работает с авторизацией. Покажет, почему Freemarker неудобен и как Keycloakify на React/TS упрощает кастомизацию UI.

2️⃣ Бесшовный старт в Angular

➡️ Для фронтендеров на Angular и SPA. Рецепт, как убрать «белый экран» при загрузке и сделать старт плавным.

3️⃣ Отображение четырёхмерного пространства на двухмерную плоскость

➡️ Для любителей графики и математики. Как построить и визуализировать тессеракт в WebGL.

🐸 Библиотека фронтендера

#read_watch #react #angular #js
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
🔑 Cортировка по нескольким ключам

Когда нужно отсортировать массив объектов сразу по нескольким полям — вместо вложенных 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)
);


Где пригодится:

➡️ Сортировка таблиц и списков в UI;

➡️ Подготовка данных из API;

➡️ Фильтры («сначала по категории, потом по цене»).

⚡️ reduce + sort = компактный способ заменить кучу if-else и делать гибкую сортировку по любым ключам.

🐸 Библиотека фронтендера

#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🌚3🔥21
📂 htmx: быстрый способ оживить интерфейс

Вместо тонны JS-кода можно писать интерактив прямо в атрибутах: hx-get, hx-post, hx-swap, hx-trigger.

➡️ Зачем пробовать:

— Минимум кода, максимум динамики

— Быстрый старт без фреймворка

— Удобно и для пет-проектов, и для прототипов

💡 Не заменит полноценный React/Vue, если нужна сложная логика

➡️ Мини-пример:


<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🤔42
Сегодня премьера

В 19:00 МСК стартует бесплатный вебинар с Максимом Шаланкиным«ИИ-агенты: новая фаза развития искусственного интеллекта».

В программе:
— почему агенты ≠ чат-боты;
— живое демо простого агента;
— и как эта тема встроена в курс, который разработан под руководством Никиты Зелинского.

Это прямой эфир: подключиться можно через лендинг курса.
🌚3😁1
🌪 CSS-баттл

Представим: старт проекта завтра. Что возьмете в основу?

➡️ Tailwind CSS

— Быстрая верстка за счёт утилитарных классов
— Чёткий дизайн-системный язык без лишнего нейминга
— Удобно для больших команд — меньше стиля-разброда

➡️ Styled Components

— Стили прямо в компоненте → чище структура
— Динамика через пропсы без костылей
— Отличная интеграция с React, всё на JS

Голосуем реакциями:

👍 — Tailwind
❤️ — Styled Components

🐸 Библиотека фронтендера

#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4627🥱10
🌪 useEffect и зависимости

На картинке 3 кейса:

➡️ Забыли проп в deps → эффект не срабатывает при изменении данных

➡️ Положили объект/функцию → эффект запускается каждый ререндер

➡️ Скаляр в deps → всё стабильно, эффект срабатывает ровно при нужном изменении

⌨️ Совет:

— Всегда указывайте все зависимости эффекта

— Если зависимость нестабильна (объект/функция) → мемоизируйте (useMemo, useCallback)

— Примитивы (строка, число) в deps — самый безопасный вариант

🐸 Библиотека фронтендера

#hotfix #react
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2🔥2
🧠 Как строить UI-компоненты по принципу атомов, молекул и организмов

Компоненты делятся на уровни:

1️⃣ Атомы — базовые элементы: кнопки, инпуты, иконки.

2️⃣ Молекулы — простые комбинации атомов, например форма поиска.

3️⃣ Организмы — сложные блоки интерфейса, например хедер или карточка товара.

4️⃣ Шаблоны — структура страницы с расставленными организмами, без конкретного контента.

5️⃣ Страницы — финальная реализация шаблонов с реальными данными.

➡️ Зачем это нужно:

— Упрощает повторное использование компонентов

— Делает код предсказуемым и масштабируемым

— Помогает поддерживать дизайн-систему

📌 Atomic Design особенно полезен для больших проектов, где интерфейс постоянно растёт и нужно избегать хаоса в компонентах.

🐸 Библиотека фронтендера

#blueprint
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
🪄 Как откатить коммит и не потерять работу

Бывает: сделал коммит слишком рано — что-то забыл или добавил лишнее. Удалять изменения не хочется, а переписывать руками — долго.

Решение:


git reset --soft HEAD~1


➡️ Что произойдёт:

— последний коммит исчезнет из истории,
— все изменения вернутся в staged,
— можно поправить и закоммитить заново.

🧠 Идеально для случаев «ой, рано нажал git commit».

🐸 Библиотека фронтендера

#readme #git
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4🔥1🥱1
📌 Разбор интерфейсов: Pinterest

Сегодня смотрим, за счёт чего сетка Pinterest выглядит цельной и удобной.

➡️ Разберем принцип Masonry-layout, способы его реализации и то, почему он стал стандартом для галерей и бесконечных лент.

🐸 Библиотека фронтендера

#ux_analysis
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥3