Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
22.5K subscribers
2.44K photos
151 videos
38 files
4.83K links
Все самое полезное для фронтенда в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
Download Telegram
Последний шанс залутать курсы Proglib Academy с выгодой 40% и пожизненным доступом.

До 1 августа действует скидка на курсы по математике для Data Science, алгоритмам и структурам данных, обновлённому Python, frontend-разработке с нуля, основам IT для непрограммистов, базовым моделям ML, а также архитектурам и шаблонам проектирования.

Выбираем и забираем 👈

P.S. Акция не распространяется на курсы «AI-агенты для DS-специалистов» и «ML для старта в Data Science».
5
💡 Web3 Frontend: с чего начать

Разработка интерфейсов для dApp — это не просто интеграция с блокчейном, а создание безопасных и удобных инструментов для пользователей.

Что в карточках:

Основы Web3: ключевые термины и понятия

Какие библиотеки нужны для работы

Настройка кошельков и взаимодействие с сетью

🔗 Полный текст статьи — по ссылке

🐸 Библиотека фронтендера
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥63
📌 Команда дня: загружаем компонент отложенно

Позволяет лениво подгружать компонент, разделяя бандл и ускоряя первую загрузку.


const LazyComponent = React.lazy(() => import("./MyComponent»));


✔️ Используется для тяжёлых страниц, графиков, модалок, админок и любых не-критичных блоков.

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

— Уменьшает размер основного бандла.

— Улучшает скорость первого рендера (LCP).

— Позволяет загружать компонент только тогда, когда он реально нужен.

😳 Лайфхаки:

— Можно обернуть в Suspense, чтобы показать loader:


<Suspense fallback={<Spinner />}>
<LazyComponent />
</Suspense>


— Компонент загружается один раз и кешируется браузером.

— Можно использовать dynamic import и в Next.js:


const LazyComponent = dynamic(() => import("./MyComponent"), { ssr: false });


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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62🔥1🥱1
⭐️ Чек-лист для Performance-анализ перед релизом

Перед запуском проекта важно проверить его производительность. Этот чек-лист поможет выявить слабые места и обеспечить пользователям быстрый и стабильный опыт.

1️⃣ Тестирование TBT (Total Blocking Time):

— Используйте инструменты, такие как Lighthouse или WebPageTest, чтобы измерить TBT и убедиться, что основная часть контента становится интерактивной в пределах 100-200 мс.

2️⃣ Ленивая загрузка ресурсов:

— Убедитесь, что изображения, видео и другие ресурсы, которые не видны при загрузке страницы, загружаются только по мере необходимости (lazy-loading).

3️⃣ Использование requestIdleCallback:

— Оптимизируйте неважные задачи (например, отправка аналитики, обработка неважных фонов задач) с помощью requestIdleCallback, чтобы не блокировать основной поток выполнения.

4️⃣ Шрифты не блокируют рендер:

— Используйте font-display: swap для веб-шрифтов, чтобы они не блокировали рендер страницы при их загрузке.

5️⃣ Оптимизация загрузки JavaScript:

— Разделите код на части с помощью динамической загрузки (code splitting), чтобы минимизировать начальный бандл. Используйте defer или async для скриптов.

6️⃣ Ресурсы и кеширование:

— Настройте заголовки кеширования для статичных ресурсов и используйте механизмы вроде stale-while-revalidate для API-запросов.

7️⃣ Минимизация и сжатие ресурсов:

— Проверьте, что весь JavaScript, CSS и HTML сжаты и минифицированы, используя инструменты типа Terser или CSSNano.

8️⃣ Асинхронная загрузка стилей и скриптов:

— Используйте preload или prefetch для приоритетных ресурсов, чтобы ускорить их загрузку, а также отложите менее важные ресурсы.

9️⃣ Проверка по инструментам измерения производительности:

— Прогоните ваше приложение через Lighthouse и WebPageTest, чтобы узнать, есть ли какие-то узкие места, которые могут замедлять работу.

🔧 Завершающая проверка:

— Пройдитесь по результатам и проверьте, не превышают ли важные метрики (например, FCP, LCP) пороговых значений.

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
🧑‍💻 Безумные запросы от дизайнеров, которые пришлось реализовать

Работа с дизайнерами — это всегда вызов, когда их креативные идеи выходят за рамки привычного.

Вопрос от подписчика:

«Однажды дизайнер настоял на том, чтобы кнопки в интерфейсе были в стиле старых приложений Windows 95 — с анимациями и даже с мигающими кнопками. «Старый стиль», «кнопки, которые моргают», — все это нужно было сделать с помощью CSS. Конечно, такой запрос вызвал у меня вопросы и у всей команды, но в итоге мы смогли воссоздать эту атмосферу, только с использованием современных технологий.»


Какие странные идеи от дизайнеров вам приходилось выполнять? Что из этого точно не для продакшн?

Поделитесь своими историями в комментариях 🔚

P.S. Если хотите задать вопрос, заполните нашу гугл-форму. Это займет 5 минут.

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👾1
🔥 Как работает TypeScript внутри — и почему он может тормозить

Глубокий разбор проблем с производительностью TypeScript в больших проектах и монорепах.

В подкасте:

Почему TS может тормозить в монорепозиториях — и что с этим делать

Как project references и workspace реально ускоряют компиляцию

Почему VSCode иногда медленнее самого tsc

Альтернативы: Go‑компилятор для TypeScript и другие неожиданные решения

Советы по оптимизации типов, импорта и структуры проекта

Разговор не про хейт TypeScript, а про то, как сделать его быстрым и удобным даже в огромных кодовых базах.

🔗 Слушать выпуск

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1
⭐️ Что известно про A11y

Доступность (A11y) — не про «особые случаи», а про качество интерфейса в целом. Если элемент невозможно использовать с клавиатуры, он недоступен. Если цветовая схема неразборчива — он недоступен.

Что разобрано в карточках:

➡️ Как семантика и aria-атрибуты помогают пользователям с разными потребностями

➡️ Какие визуальные и технические требования предъявляются к доступному UI

➡️ Чем и как проверять интерфейс на соответствие стандартам доступности

Если вы ещё не проверяли свои компоненты на A11y — самое время начать.

🐸 Библиотека фронтендера
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥112👍1
🧩 Компоненты или все в одном

Когда разрабатываете интерфейс, всегда возникает вопрос: стоит ли разделять его на маленькие, атомарные компоненты или проще собрать всё в одном?

Каждый подход имеет свои плюсы и минусы, и важно выбрать тот, который подходит именно для вашего проекта.

Преимущества разделения на компоненты:

— Маленькие компоненты легко переиспользуются, что упрощает поддержку и расширение проекта.

— Компоненты легче тестировать и изменять, что делает код более гибким и читаемым.

— Когда каждый работает над своим компонентом, это упрощает взаимодействие в команде.

⛔️ Почему всё в одном тоже имеет смысл:

— В небольших проектах бывает проще не заморачиваться на создание множества компонентов, а просто сделать один большой.

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

— Когда всё в одном компоненте, проще контролировать логику и избежать излишней абстракции.

Что для вас удобнее: дробить интерфейс на множество маленьких компонентов или работать с одним большим?

Поделитесь в комментариях! ✏️

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

#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔53👍1