Перейти к содержимому
Технологии IT обновлён 26.02.2024

Frontender Libs - обзор библиотек JS / CSS

Frontender Libs - обзор библиотек JS / CSS - это Telegram-канал, который предлагает обзоры различных библиотек JavaScript и CSS для фронтенд-разработки. Здесь вы найдете информацию о новых библиотеках, их возможностях, примеры использования и советы по оптимальному применению. Канал поможет вам быть в курсе последних тенденций в мире фронтенд-разработки и выбрать наиболее подходящие инструменты для вашего проекта. Если вы интересуетесь разработкой на JavaScript и CSS и хотите узнать о новых библиотеках и их применении, подписывайтесь на Frontender Libs в Telegram!

Публикации канала

🚀 Next.js 16.4 научил ИИ-агента искать лишний JavaScript В Next.js 16.4 появился next-bundle-optimizer: навык для ИИ-агента, который разбирает граф модулей сборщика Turbopack и ищет код, попавший в бандл зря. Пример: тяжёлый компонент обёрнут в lazy(), но другой модуль импортирует его напрямую, и он всё равно грузится сразу. Агент прослеживает такие цепочки и предлагает, где их разорвать. npx skills add vercel/next.js --skill next-bundle-optimizer Затем в агенте вызываете /next-bundle-optimizer. По умолчанию он только сообщает о проблемах, а /next-bundle-optimizer fix применяет правки и сравнивает размер до и после. Учтите: нужен Turbopack, без его графа модулей анализ не работает. С Next.js 16 это сборщик по умолчанию. В Vercel агент так убрал почти 2 МБ сжатого JS на v0 и vercel.com, и список его находок стоит посмотреть. 👍 - если было полезно 👉 @sWebDev

Открыть в Telegram

🧭 Предзагрузка в TanStack Router, которая тихо ломается В TanStack Router данные можно начать грузить в loader маршрута ещё до рендера, а компонент заберёт их из кэша TanStack Query. Но запрос при этом описан в двух местах: // loader await context.queryClient.ensureQueryData( dashboardQueryOptions(params.dashboardId, deps), ) // component const { data } = useSuspenseQuery( dashboardQueryOptions(params.dashboardId, { asOf }), ) Если они разойдутся, ошибки не будет. Loader скачает лишнее, а компонент сделает второй запрос. TkDodo предлагает собирать queryOptions один раз в новой функции маршрута context. Loader и компонент берут их оттуда (компонент через useRouteContext()), и разойтись им уже не в чем. Учтите, что на момент написания статьи функция context ещё не была описана в документации. Отдельно TkDodo объясняет, почему такой контекст не плодит лишних ререндеров. 👍 - если было полезно 👉 @sWebDev

Открыть в Telegram

🧩 Страница в Angular, которая не знает про роутер Обычно компонент страницы сам берёт userId из ActivatedRoute, зовёт UserService и рисует «Loading...». Переиспользовать такой компонент сложно, а для теста нужен роутер и мок сервиса. Опция роутера withComponentInputBinding (есть с Angular 16) сама записывает данные маршрута в инпуты компонента с тем же именем: provideRouter(routes, withComponentInputBinding()) Загрузку пользователя автор выносит в резолвер, то есть функцию, которая получает данные до перехода на маршрут. В компоненте остаётся одна строка с input.required<User>(). Учтите, что роутер сверяет только имя ключа и имя инпута, а типы не проверяет. Если резолвер вернёт объект другой формы, всё скомпилируется. Автор советует общий интерфейс и интеграционный тест. В статье разобрано, где здесь инверсия зависимостей и как показать лоадер, пока резолвер ждёт ответа. 👍 - если было полезно 👉 @sWebDev

Открыть в Telegram

🛟 Angular 22.2: упавший шаблон больше не ломает страницу Раньше ошибка при рендере шаблона уходила в глобальный ErrorHandler, а часть страницы оставалась недорисованной. Новый блок @boundary ограничивает ущерб: если внутри что-то бросит исключение, Angular покажет вместо этой секции блок @error. Идея подсмотрена у React. @boundary { <app-chart /> } @error (let err; retry = $reset; when isNetworkError(err)) { <p>{{ err.message }}</p> <button (click)="retry()">Retry</button> } @error { <p>Something went wrong.</p> } Первый @error ловит сетевые ошибки и даёт повторить рендер через $reset, второй ловит всё остальное. С Resource API это удобно: value() при сбое загрузки бросает исключение, и проверять error() заранее не нужно. Пока @boundary в статусе developer preview. А ещё в статье Router Resources: данные маршрутов грузятся параллельно, а не цепочкой резолверов. 👍 - если было полезно 👉 @sWebDev

Открыть в Telegram

🪄 Один URL: модалка поверх списка и полноценная страница В каталоге детали карточки удобно открывать поверх списка. Но если модалка живёт в useState, адрес не меняется. Ссылкой не поделиться, после reload остаётся список, а поисковик деталей не видит. В Next.js App Router это решают Parallel Routes и Intercepting Routes. Модалка лежит в слоте @modal, который layout рисует рядом со страницей. Папка с префиксом (.) перехватывает обычный маршрут: @modal/ (.)events/ [id]/ page.tsx При клике через Link адрес меняется на /en/events/123, а детали открываются поверх списка. При прямом заходе или reload перехвата нет, и рендерится обычная страница со своими metadata и canonical. Слоту обязательно нужен default.tsx, который возвращает null. Без него при прямом заходе можно получить 404. В статье ещё разобрано, как закрыть модалку и вернуться к списку с теми же фильтрами. 👍 - если было полезно 👉 @sWebDev

Открыть в Telegram

🛡️ Как не дать чужому пакету украсть ваши секреты через pnpm install Атаки на npm-пакеты обычно идут по одной схеме. Пакет взламывают, его postinstall-скрипт запускается у вас на машине и уносит данные. В менеджере пакетов pnpm v10 есть настройки, которые сильно усложняют такой сценарий. Скрипты установки там выключены по умолчанию. А minimumReleaseAge откладывает установку только что опубликованных версий: большинство взломанных пакетов обнаруживают и снимают за считанные часы. Мягкий вариант конфига из статьи: # pnpm-workspace.yaml blockExoticSubdeps: true trustPolicy: no-downgrade minimumReleaseAge: 1440 # 1 day allowBuilds: esbuild: true fsevents: true Подвох в том, что пакеты, которым скрипты нужны по делу (нативные аддоны, esbuild), придётся явно разрешить через allowBuilds. В статье есть и строгий конфиг: неделя ожидания новых версий и падение CI на всём подозрительном. 👍 - если было полезно 👉 @sWebDev

Открыть в Telegram

⚡ React Compiler в Vite теперь работает на Rust React Compiler оптимизирует React-компоненты прямо во время сборки. Раньше в Vite его подключали через Babel. В @vitejs/plugin-react v6.1.0 появилась экспериментальная нативная версия от команды oxc, которая делает JS-инструменты на Rust. Автор перевёл на неё конструктор сайтов из 1036 файлов. Сама компиляция ускорилась с 14,3 до 0,81 секунды. Сборка целиком ускорилась скромнее: с 22,1 до 9,3 секунды. На Vite 8+ переход сводится к упрощению конфига. Babel-плагин больше не нужен: npm install -D oxc-transform-react // vite.config.js import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; export default defineConfig({ plugins: [react({ compiler: true })], }); Учтите, что поддержка пока помечена как экспериментальная. В статье есть рецепт и для React Router в framework mode, где плагин Vite React не используется. 👍 - если было полезно 👉 @sWebDev

Открыть в Telegram

⚡ Angular 22.2: данные маршрута грузятся параллельно Резолверы в Angular Router загружают данные до открытия страницы. Но вдоль иерархии маршрутов они идут по очереди: родитель грузится 2 секунды, дочерний маршрут 3, и пользователь ждёт 5. В Angular 22.2 появилась альтернатива: Router Resources. В маршруте пишут свойство resources с обычными resource, а роутер запускает их все сразу. В том же примере ждать придётся 3 секунды. { path: 'passenger-edit/:id', component: PassengerEdit, resources: (ctx) => ({ passenger: createSimplePassengerResource(ctx.params), }), }, Компонент получает готовое значение как input, так же как от резолвера. А если обернуть ресурс в nonBlocking, страница откроется сразу, и загрузку покажет сам компонент. Пока это Developer Preview: до стабилизации API может поменяться в деталях. В статье ещё перезагрузка данных без новой навигации и редирект, когда их нет. 👍 - если было полезно 👉 @sWebDev

Открыть в Telegram

⚡️ В сети начали массово сливать IT-курсы и книги известных онлайн школ Вот отсортированная база с тонной материала (постепенно пополняется): (363 видео, 87 книги) — Python (117 видео, 53 книги) — ВАЙБКОД (174 видео, 91 книги) — DevOps (415 видео, 68 книги) — Frontend (137 видео, 93 книги) — DS/ML (143 видео, 33 книги) — ИБ/Хакинг (352 видео, 89 книги) — С/С++/C (343 видео, 87 книги) — Java/QA (176 видео, 32 книги) — Git/Linux (167 видео, 53 книги) — PHP/1С (227 видео, 83 книги) — SQL/БД (114 видео, 77 книги) — Сисадмин (107 видео, 43 книги) — BA/SA (181 видео, 32 книги) — Go/Rust (167 видео, 43 книги) — Kotlin/Swift (112 видео, 24 книги) — Flutter (113 видео, 82 книги) — GameDev (183 видео, 37 книги) — Дизайн (136 видео, 33 книги) — PM/HR Скачивать ничего не нужно — все выложили в Telegram

Открыть в Telegram

✨ Анимации в React без библиотеки анимаций В React 19.3 стал стабильным компонент <ViewTransition>. Он отдаёт анимацию переходов между состояниями интерфейса браузерному View Transition API. Автор статьи в блоге LogRocket собрал одно приложение дважды: на библиотеке анимаций Motion и на <ViewTransition> с CSS. Модалка в нативной версии: function openModal() { startTransition(() => setIsOpen(true)); } {isOpen && ( <ViewTransition enter="modal-enter" exit="modal-exit"> <div className="modal-overlay" onClick={closeModal}> <ModalContent onClose={closeModal} /> </div> </ViewTransition> )} Сами движения описываются в CSS. JS в этой сборке похудел на 39 005 байт (gzip), зато кода анимаций вышло 253 строки против 75 у Motion. Для жестов, пружин и эффектов по скроллу автор скорее оставил бы библиотеку. А в статье ещё сортировка 250 карточек, навигация и перелёт картинки, плюс грабли, на которые он наступил. 👍 - если было полезно 👉 @sWebDev

Открыть в Telegram

🤖Podlodka Backend Crew: AI в бэкенд-задачах Демо с AI чаще всего выглядят одинаково: агент за десять минут пишет сервис с нуля. Вот только в работе бэкендера всё сложнее: легаси, рискованные миграции, неработающие тесты и ревью, которое становится бутылочным горлышком. 🗓 С 26 по 30 октября в сезоне Podlodka Backend Crew «AI в бэкенд-задачах» участники: • Научатся передавать агенту инженерные стандарты и правила, чтобы он писал так, как нужно, а не как получится • Соберут ревью, где несколько моделей независимо проверяют изменения, а финальное решение остаётся за человеком • Посмотрят, куда переезжает сложность миграции легаси, когда код пишет агент • Выяснят, где ломается мечта отдать миграцию агенту целиком • Разберут, какие антипаттерны тестов агенты уже успели перенять от разработчиков. Формат — пять дней живых Zoom-сессий утром и вечером, закрытое сообщество в Telegram и общение со спикерами. Будет много интерактива и практики. Базовый ликбез оставят за бортом — этот сезон для тех, кто уже пробует AI в реальных проектах. Присоединяйтесь с 26 октября! 🔗 Билеты и программа: https://podlodka.io/becrew

Открыть в Telegram

АЙТИШНИКИ БЕСПЛАТНОЕ ОБУЧЕНИЕ Проект «Terminal» стал крупнейшей библиотекой бесплатного образования. В одном канале собраны курсы, книги, полезные инструменты и практические тренажёры для всех разработчиков: • Практические курсы и задания • Книги и статьи известных авторов • Полезные инструменты и ресурсы • IT-новости и инсайды Обучение по всем направлениям: SQL, Python, ML, Frontend, PHP, C++, Go, Git, Linux, QA, Java, Vibe-coding, InfoSec и др. ⌨️ подписаться

Открыть в Telegram

🔴В 2025 году Россияне заработали 5,3 млрд рублей на арбитраже криптовалют По данным Минфин 32% граждан покинули своё место работы поскольку уже в первый месяц смогли заработать 250 000 рублей, а через 2-3 месяца с легкостью вышли на семизначные числа. Самое смешное, что лишь 8% россиян что-то слышали об этой профессии хотя все инструкции бесплатно лежат на канале Арбитраж Криптовалют Там объясняют, как имея телефон и доступ в интернет заработать свои первые $3000. Причём разжёвывают так доступно, что поймёт даже ребенок. Кстати, на канале сегодня вышла новая рабочая связка! Ссылка для входа — https://t.me/+GY-3aS-FN5c0Yjhi

Открыть в Telegram

🤖 AI для фронтенд-разработчика: собираем инструменты на Podlodka Frontend Crew AI-инструменты уже используют все, но порой в обсуждении с LLM возникает ощущение, что голова полна ответов, но их всё ещё недостаточно, чтобы разрешить вполне себе прикладные вопросы. Эксперты Podlodka Frontend Crew собрали онлайн-конференцию «Фронтенд с AI», чтобы вместе с практиками из индустрии увидеть, как работает AI в разных аспектах фронтенд-разработки, а главное — сразу начать использовать новые подходы в реальной жизни. 💬 Какие темы ждут участников сезона с 5 по 9 октября: 🔴 AI Coding и подготовка репозитория к работе с AI 🔴 Spec Kit для разработки интерфейсов 🔴 Агентная разработка в закрытом контуре 🔴 WebMCP как дополнительный harness 🔴 AI-дизайн и его место в процессе разработки. Полная программа — уже на сайте! Формат: пять дней живых Zoom-сессий по утрам и вечерам, закрытое Telegram-комьюнити и много общения со спикерами. Если хочется не просто читать про AI-тренды, а получить концентрированную порцию знаний именно про AI для фронтенда, присоединяйтесь к сезону. Вы поймёте, как встроить новые инструменты и подходы в свою работу и найдёте множество единомышленников. 👉 Билеты на сезон

Открыть в Telegram

Комментарии

0

Комментарии пишут вошедшие — так видно, кто автор.

Войти

Комментариев пока нет

Будьте первым, кто расскажет о канале другим.

Пожаловаться на канал

Расскажите, что не так: модератор проверит канал и примет решение. Подпись не нужна, но почту можно оставить — тогда ответим.

Причина Что не так (необязательно) Почта для ответа (необязательно)
Открыть в Telegram