Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
21.6K subscribers
2.93K photos
210 videos
49 files
5.21K links
Все самое полезное для фронтенда в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
Download Telegram
🚀 TypeScript 7: нативный компилятор в превью

TypeScript переписали на нативный код — и это рабочая реальность.

Компилятор работает в редакторе и CLI, даёт 8–10× прирост скорости и доступен для тестирования.

🔤 В карточках: что готово, где ускорилось и где стоит быть осторожным.

📎 Источник

🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

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

#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👏6🥰3
☺️ Vite 8 Beta — стоит ли переходить

Vite полностью переписали на Rust-бандлере Rolldown, заменив старую связку esbuild + Rollup. Теперь dev и production используют один инструмент — никаких расхождений в поведении.

➡️ Что это даёт:

Скорость: в 10-30 раз быстрее Rollup

Проверено на практике: Linear сократил сборку с 46с до 6с, другие компании ускорились на 40-64%

Без боли: большинство плагинов работают из коробки

Единый стек: Vite + Rolldown + Oxc от команды VoidZero

➡️ Что нового:

• Встроенная поддержка tsconfig paths
• Поддержка TypeScript decorators (emitDecoratorMetadata)
• Скоро: Full Bundle Mode — dev-сервер быстрее в 3 раза

➡️ Миграция:

Обновить до 8.0.0-beta.0 и следовать гайду. Для сложных проектов рекомендуют постепенный переход через пакет rolldown-vite.

Если у вас медленные сборки — точно стоит попробовать. Rust делает своё дело, и цифры это подтверждают 📈

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

#release_digest
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍32
👨‍💻 React Server Components в React Router: зачем и как использовать

Представьте: вместо отправки данных клиенту, их обработки и рендера — вы просто отдаёте готовый UI с сервера. Никакой лишней гидратации, меньший бандл, быстрее загрузка.

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

🔢 Меньше JS на клиенте — UI рендерится на сервере

🔢 Компоненты могут сами загружать данные — проще типизация

🔢 Инкрементальная миграция — можно внедрять постепенно

🔢 Server Functions — формы работают без привязки к роутам

Особенно круто для сложных приложений с CMS-контентом или динамическими комбинациями компонентов — сервер сразу отдаёт нужный UI.

⚠️ Фича пока experimental и может иметь breaking changes в минорных релизах. Для продакшена использовать с осторожностью, но для экспериментов — самое время!

🔗 Подробности на epicreact.dev

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

#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4👾32
React_собес_30_вопросов_с_развёрнутыми_ответами.pdf
58.5 KB
📎 Шпаргалка для подготовки к React-собеседованию

🔵 30 самых популярных вопросов
🔵 Развёрнутые ответы с примерами кода
🔵 JavaScript, React, Redux, веб-технологии
🔵 Источники и ссылки на документацию

Скачай, изучи, получи оффер 👨‍💻

🔗 Источник

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

#readme #react
Please open Telegram to view this post
VIEW IN TELEGRAM
7🥱2👍1
🐧 Тёмная тема в React: простой хук или архитектура

Каждый проект проходит один и тот же путь. Сначала — кнопка переключения темы. Через месяц — система настроек.

Разница в том, что вы выбрали в первый день.

1️⃣ useLocalStorage

Состояние в браузере, API как у useState:


const [theme, setTheme] = useLocalStorage('theme', 'dark')


🔴 Когда подходит:
- Одна настройка
- Прототип или MVP
- Нет планов масштабирования

🔴 Что сломается позже:
- Ключи localStorage расползаются по компонентам
- Нет миграций при смене структуры
- Рассинхронизация состояния между вкладками

Это не баг. Это предел подхода.

2️⃣ zustand + persist

Когда добавляются язык, feature flags, пользовательские настройки — нужен единый стор:


const theme = useSettings(s => s.theme)
const setTheme = useSettings(s => s.setTheme)


🔴 Что получаете:
- Один источник правды
- Селекторы → меньше ререндеров
- Миграции версий состояния из коробки
- Синхронизация между вкладками

🔴 Цена входа:
- +1 зависимость
- 20-30 строк на стор вместо 3 на хук

🔴 Результат:
- Архитектура, которая не разваливается через полгода

Как выбрать:

- 1 настройка →
useLocalStorage

- 2-3 настройки → можно ещё потерпеть

- Система настроек → zustand сразу


localStorage — это инструмент.

zustand — это способ не переписывать проект через полгода.

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

#readme #react
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43🥰2🥱1
Вопрос с собеседования по JavaScript

«Для чего в JavaScript нужен BigInt?»


Большинство кандидатов отвечают слишком обобщённо — «для больших чисел». Такой ответ почти всегда считают неполным.

🔤 Этот вопрос проверяет не знание синтаксиса, а понимание:

• ограничений типа Number
• потери точности в вычислениях
• того, когда JavaScript начинает молча врать

Выше — 5 карточек с разбором: в чём реальная проблема, что именно решает BigInt и как правильно отвечать на собеседовании 📎

🔹 Курс «Алгоритмы и структуры данных»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

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

#career_merge
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥62🥰2
Твой `package.json` устарел

Фронтенд — это уже давно не просто перекрашивание кнопок. Чтобы пройти собес в бигтех или просто чувствовать себя уверенно, нужно понимать, что происходит «под капотом» браузера и архитектуры.

Делаем git commit в твое будущее: 3 курса по цене 1.

Оплачиваешь только тот, что дороже, — два других получаешь бесплатно.

Что подтянуть фронтендеру:

— алгоритмы и структуры данных (да, их спрашивают);
— основы IT (если плаваешь в сетях и протоколах).

Собрать свой стек на 2026

Дедлайн: 31 декабря.

Помощь с выбором: @manager_proglib
5
🔄 Retry для fetch запросов

Сетевые ошибки случаются постоянно. Простое решение на 15 строк:

Что делает:

— Автоматический retry при временных ошибках
— Экспоненциальная задержка (1s → 2s → 4s)
— Не retry'ит клиентские ошибки (400, 401, 403, 404)
— Retry только для: 408, 429, 500, 502, 503, 504

Пример использования:


try {
const res = await fetchWithRetry('/api/data');
const data = await res.json();
console.log(data);
} catch (err) {
console.error('Все попытки неудачны:', err);
}


⚠️ fetch НЕ отклоняет промис на HTTP ошибках — нужна проверка response.ok

🈁 Где использовать:

— GET/PUT/DELETE запросы
— Загрузка конфигурации
— Webhook'и

🔤 Не использовать:

— POST без идемпотентности
— Операции с оплатой

📍 Навигация: [Вакансии]

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

#hotfix
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🥰2
⚡️ React 19.2: две фичи, которые изменят ваш подход к оптимизации

Компонент <Activity> наконец-то позволяет скрывать части UI без потери состояния и без лишних рендеров.

А новые Performance Tracks в Chrome DevTools показывают всю картину на одном таймлайне — больше не нужно жонглировать двумя инструментами.

Разбираемся, как это работает и почему это важно для каждого React-разработчика → читать по ссылке 🔗

📍 Навигация: [Вакансии]

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

#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥰2
🔍 Почему код во фронтенде становится непредсказуемым

Часто проблема не в логике и не во фреймворке, а в side-effects.
Функция выглядит безопасной, но меняет объект — и состояние «едет».

Причина — как данные передаются в функции и что происходит с объектами в памяти.

➡️ В карточках:
— откуда берутся side-effects
— почему мутация ломает код
— как писать предсказуемый код без скрытых изменений

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

#under_hood
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM