lenec ru

← все теги

#frontend

40 постов

Web Components в 2026: Shadow DOM, Custom Elements и когда не нужен фреймворк

Web Components существуют с 2014 года, но долго оставались «технологией будущего». В 2026 году ситуация изменилась: все браузеры поддерживают Custom Elements v1, Shadow DOM, Declarative Shadow DOM…

0 11K
Светлана Морозова

Vite Failed to resolve import — что не так и как починить

Vite швыряет в консоль ровно такое:[plugin:vite:import-analysis] Failed to resolve import "./button" from "src/App.tsx". Does the file exist?Сообщение конкретное: модуль не нашёлся по указанному…

76 15K
Демид Песцов

htmx: интерактивность без JavaScript-фреймворков — когда это работает

Последние десять лет фронтенд двигался в одном направлении: JSON API на бэкенде, SPA-фреймворк на клиенте, тонны JavaScript для рендеринга того, что раньше делал сервер. htmx предлагает откатиться к…

0 10K
Светлана Морозова

Tailwind CSS vs CSS Modules: что выбрать для React-проекта в 2026

Если ваше приложение отправляет одинаковый system prompt в каждом запросе к LLM — вы платите за одни и те же токены снова и снова. Prompt caching решает проблему: провайдер кэширует обработанный…

0 14K
Светлана Морозова

OAuth 2.0 + PKCE: безопасная авторизация для SPA и мобильных приложений

App Router в Next.js — это не просто новая файловая структура. Это переход на React Server Components, серверные действия и принципиально другую модель кэширования. Переход с Pages Router ломает…

0 11K
backend_diary

Astro framework: строим контентный сайт с островами интерактивности

Если вы строите контентный сайт — блог, документацию, лендинг — и устали от того, что Next.js тащит на клиент сотни килобайт JavaScript ради одной кнопки, пора посмотреть на Astro. Этот фреймворк по…

0 15K
Светлана Морозова

Svelte vs React в 2026: сравнение подходов, производительности и экосистем

В 2024 году команда Astral (создатели ruff) выпустила uv — менеджер пакетов Python, написанный на Rust. За полтора года он дорос до стабильной версии и претендует на замену pip, pip-tools, virtualenv…

0 18K
Светлана Морозова

Виртуализация длинных списков в React: TanStack Virtual без боли

Нам прилетел тикет — оптимизировать листинг на 5К карточек товаров. Без виртуализации страница на iPhone 11 умирала в момент скролла, FPS падал до 5–7. С виртуализацией стала держаться на 58–60.…

367 15K
Юлия Скворцова

Vitest vs Jest в 2026: быстрые тесты для Vite-проектов и не только

Jest доминировал в тестировании JavaScript последние 7 лет. Но с приходом Vite как стандартного сборщика появился Vitest — тест-раннер, который использует ту же конфигурацию и pipeline что и ваш…

0 16K
Светлана Морозова

useEffect cleanup на практике: когда он критичен и как его не забыть

На собеседованиях я обычно спрашиваю: «расскажи, что делает функция, которую ты возвращаешь из useEffect». Половина кандидатов отвечает «это для отписки от подписок». Это правильно, но это треть…

401 19K
Юлия Скворцова

Доступность по уровням: что обязательно сделать в любом проекте за день

За семь лет фронта я видела одну и ту же сцену много раз: на ретро поднимается тема доступности, кто-то говорит «нам нужен полноценный аудит WCAG AA», бэклог пухнет на три спринта вперёд, а через…

428 19K
Анна Соколова

Astro 4 → 5: что сломалось и как чинить

Я мигрировал три проекта с Astro 4 на 5. Один — контент-сайт со статикой, второй — гибрид с серверным рендером и API-роутами, третий — большой монорепозиторий с собственными интеграциями. Опыт у…

167 12K
Никита Воробьёв

Vue 3 Composition API vs Options API: миграция и паттерны

Composition API — главное архитектурное изменение Vue 3. Он не заменяет Options API полностью, но решает проблемы, с которыми Options API не справлялся: переиспользование логики, типизация и…

0 11K
Светлана Морозова

SolidJS: реактивность без Virtual DOM — практическое сравнение с React

В 2026 году axios всё ещё стоит в dependencies у миллионов проектов, хотя Node.js давно имеет встроенный HTTP-клиент. Начиная с Node 21 fetch() доступен без флагов, а под капотом работает undici —…

0 10K
Светлана Морозова

CSS Container Queries: где они уже работают

Контейнерные запросы (CSS Container Queries) — это инструмент, который ждали пятнадцать лет. Раньше адаптивная вёрстка строилась только на ширине viewport, и компонент в боковой панели и в основной…

86 17K
Глеб Тихомиров

Next.js App Router: серверные действия, кэширование и подводные камни

Текстовые логи вида INFO: User logged in работают, пока сервис маленький. Но когда у вас 50 инстансов и тысячи запросов в секунду — grep по тексту превращается в пытку. structlog решает проблему:…

0 17K
Светлана Морозова

Vite 6 environment API: гайд

Vite 6 принёс Environment API — новый способ описывать сборку для нескольких сред (браузер, Node, Worker, edge). Раньше это решалось монолитной конфигурацией с условиями, что приводило к запутанным…

145 13K
Алина Боброва

React Server Components на практике: когда использовать и как не сломать приложение

Передавать пароли через переменные окружения — привычно, но небезопасно. Любой с доступом к docker inspect видит все env в открытом виде. Docker secrets решают проблему: секреты монтируются как файлы…

0 11K
Светлана Морозова

Playwright vs Cypress в 2026: E2E-тестирование фронтенда — что выбрать

E2E-тестирование фронтенда в 2026 году — это выбор между Playwright и Cypress. Оба инструмента зрелые, оба активно развиваются, но архитектурно они принципиально разные. Разбираемся в отличиях,…

0 16K
Светлана Морозова

Qwik framework: resumability вместо hydration — будущее фронтенда?

Каждый фронтенд-фреймворк с SSR сталкивается с одной проблемой: сервер отрендерил HTML, но страница мертва — кнопки не кликаются, формы не работают. Чтобы оживить интерфейс, нужна гидрация: скачать…

0 10K
Светлана Морозова

useCallback в React: когда реально нужен, а когда вредит

Типичный Docker-образ Node.js-приложения на базе node:18 весит больше гигабайта. В проде вам не нужны ни компилятор, ни dev-зависимости, ни исходники TypeScript. Multi-stage builds решают эту…

0 17K
Светлана Морозова

Zustand vs Redux Toolkit в 2026: какой стейт-менеджер выбрать для React

JWT стал стандартом де-факто для аутентификации в SPA и микросервисах. Но простота формата обманчива — за ней скрываются ловушки, которые превращают токен из инструмента безопасности в уязвимость.…

0 16K
Светлана Морозова

Доступность форм в React: ошибки, метки, фокус, ARIA без перебора

Доступность форм — тема, на которой проседает 90% фронтов. Не потому что разработчики плохие, а потому что её редко учат, и редко требуют на собеседовании. А потом у пользователя со скринридером…

395 17K
Юлия Скворцова

View Transitions API в Astro: реальные кейсы

View Transitions появились в Astro ещё в третьей версии и за это время превратились из красивой демки в рабочий инструмент. Я их использую в трёх проектах: сайте конференции, корпоративном блоге и…

367 19K
Полина Цаплина

Astro vs Next.js 15: когда что выбрать в 2026

Я последние три года живу в обоих фреймворках одновременно: контентные сайты собираю на Astro, продуктовые приложения — на Next.js. К 2026 году стало проще объяснять разницу: фреймворки разъехались…

276 18K
Никита Воробьёв

next/image на практике: как не получить раздутую галерею

Next/image — одна из тех штук, которые работают «как бы сами», и из-за этого в большинстве проектов настроены неправильно. Картинки приезжают в полном размере, sharp ест память, а LCP не проседает…

198 17K
Юлия Скворцова

LCP в реальном проекте: топ-5 причин и как чинить

За последние два года я разбирала LCP в десятке проектов: e-commerce каталоги, медиа-главные, лендинги. Если посмотреть на распределение причин, картина получается на удивление однообразная. На пять…

432 13K
Дарья Перепёлкина

Собеседование на джуна Frontend: 50 вопросов с разбором

Я провожу собеседования джунов на фронт пять лет, в среднем 6–8 интервью в неделю. За это время вопросы кочуют от компании к компании, повторяются, и собрать список типовых — задача решаемая. Ниже 50…

473 17K
Дина Кречетова

TypeScript satisfies: когда вместо as

Оператор satisfies в TypeScript появился в 4.9 и уже к 2026 году стал привычным. Но тренд я наблюдаю до сих пор: разработчики, особенно из мира JS, путают satisfies с as и иногда применяют их…

208 10K
Глеб Тихомиров

Анализ JS-бандла в Next.js: где искать лишний вес

Раз в полгода я сажусь и проверяю, что у меня в бандле. Без этого через год проект превращается в склад случайно протащенных библиотек, и страница, которая раньше весила 95 КБ gzipped, начинает…

220 12K
Юлия Скворцова

Дизайн-токены без Tailwind: организация CSS custom properties в больших проектах

Каждые полгода кто-то в моём окружении предлагает «всё переписать на Tailwind». Аргумент один и тот же — у нас стилей слишком много, разработчики придумывают новые отступы, бардак растёт. Я не против…

79 12K
Анна Соколова

Visual regression в Playwright: screenshot baseline без боли

Visual regression — это тесты, которые проверяют, что страница выглядит так же, как раньше. Не «работает» (это делают функциональные тесты), а именно «выглядит». Сценарий из жизни: разработчик правит…

155 16K
Елена Воронова

Error Boundaries в React: где ставить и как не превратить в общий catch

Error Boundary — один из тех механизмов, про который все знают, но почти никто не использует осознанно. Чаще всего я вижу либо «в проекте нет ни одной границы, всё падает белым экраном», либо «один…

331 13K
Юлия Скворцова

ARIA: когда нужна, когда вреднее не использовать

Самый частый паттерн, который я вижу в попытках «улучшить доступность» — массовое навешивание ARIA-атрибутов на всё подряд. role="button" на ссылке, aria-label="Кнопка" на кнопке с текстом…

394 10K
Анна Соколова

Suspense на клиенте: где границы ставить, чтобы не мигало

Suspense я первый раз попробовала ещё в эпоху pages router и осталась недовольной — половина случаев ломалась, скелетоны мигали невпопад. С приходом App Router и React 18+ я вернулась к нему…

129 12K
Юлия Скворцова

Container queries vs media queries: где какие выбирать в 2026

Когда container queries только-только зарелизились в Chromium и Safari, в твиттере и блогах прокатилась волна «media queries умерли». Год спустя стало понятно — нет, не умерли. Container queries не…

297 19K
Анна Соколова

Адаптивная типографика на clamp() без JavaScript

Когда я в первый раз увидела clamp() в продовом коде, у меня была ровно одна мысль: «зачем это месиво из трёх чисел, если есть простые media queries». Через полгода работы я перешла на clamp на 90%…

234 10K
Анна Соколова

Strict TypeScript на проекте: какие флаги дают ценность, а какие шумят

Я работаю с TypeScript шесть лет, и за это время три раза включала strict: true на чужих проектах. Все три раза первая реакция команды была одна: «у нас же десять тысяч ошибок, мы что, всё это будем…

186 13K
Юлия Скворцова

SWR vs TanStack Query: где разница и что брать в 2026

Раз в год кто-то приходит ко мне в личку и спрашивает: «Юля, что брать — SWR или TanStack Query». И раз в год я отвечаю одно и то же: зависит от проекта. Дальше выясняется, что человек хочет короткий…

218 17K
Юлия Скворцова

Focus management в SPA: куда возвращать фокус после навигации

Когда переходишь между страницами в обычном сайте — браузер сам ставит фокус в начало документа, и скринридер начинает читать сначала. В SPA URL меняется, а DOM нет — браузер не понимает, что…

371 11K
Юлия Скворцова