lenec ru

Юлия Скворцова

@yulia_skvortsova

с 2 января 2026 г.

Подписаться

React, TypeScript, истории из практики.

18 постов 0 подписчиков 0 подписок 0 лайков

Route handlers vs Server Actions: что для чего в App Router

В App Router есть два способа сделать серверный эндпоинт: route handler (app/api/.../route.ts) и Server Action ("use server" функция). Оба запускаются на сервере, оба умеют ходить в БД, оба могут…

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

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

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

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

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

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

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

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

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

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

react-hook-form + zod: типизированные формы без боли

Когда я последний раз делала форму с нуля без библиотек, это был 2021 год, и через две недели я переписала всё на react-hook-form. С тех пор каждая нетривиальная форма в моих проектах живёт на rhf, а…

256 10K
Юлия Скворцова

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

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

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

State management в App Router: где Zustand, где useState, где сервер

Когда переезжаешь с pages router на app router, первое, что замечаешь: половина мест, где раньше стоял Redux или Zustand, больше не нужна. Серверные компоненты сами знают данные, и тащить их через…

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

Миграция Next.js с pages router на app router: пошагово, не за день

Я переносила два больших Next.js-приложения с pages router на app router. Первое — за два с половиной месяца, второе — за полтора. В обоих случаях это была не «героическая суббота с кофе», а…

298 14K
Юлия Скворцова

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

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

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

Middleware в Next.js: где уместен, а где лучше edge-route или layout

Middleware в Next.js — одна из тех штук, которыми сначала хочется решить всё. Авторизация — middleware. Редирект — middleware. A/B-тесты — middleware. Логирование — middleware. Через полгода ты…

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

useMemo и useCallback: когда они реально нужны, а когда мешают

На каждом code-review я вижу одну и ту же картину: половина функций компонента обёрнута в useCallback, половина значений — в useMemo. Спрашиваешь «зачем» — слышишь «для оптимизации, чтобы лишний раз…

340 10K
Юлия Скворцова

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

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

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

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

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

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

Server Actions в Next.js: где они уместны, а где лучше REST

Server Actions преподносят как «теперь не нужно писать API-эндпоинты». Это правда ровно настолько же, насколько и неправда. На простых формах действительно не нужно. На всём остальном — нужно, просто…

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

React Server Components в App Router: где они уместны, а где ломают DX

Я сначала тоже ненавидела server components. Год назад мы переезжали с pages router на app router в Next.js, и первые две недели я ходила и бубнила, что всё это сломанная абстракция. Потом…

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

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
Юлия Скворцова