Библиотека фронтендера | Frontend, JS, JavaScript, React.js, Angular.js, Vue.js
21.8K subscribers
2.73K photos
186 videos
41 files
5.09K links
Все самое полезное для фронтенда в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
Download Telegram
🖍 Все используют em, но пора перейти на lh

Обычно мы пишем:


p + p { margin-top: 1em; }


Но em завязан на размер шрифта, а не на высоту строки.
В итоге при изменении line-height вертикальный ритм ломается.

💡 Решение — lh и rlh:


p + p {
margin-block-start: 1lh;
}


1lh = текущая высота строки элемента.

1rlh = высота строки корневого элемента (root line height).

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

🔤 Поддержка: Chrome 108+, Safari 16.4+, Firefox 111+

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

#readme #css
Please open Telegram to view this post
VIEW IN TELEGRAM
10🥰3🔥2
🌪 JS, который ломает мозг #1

Кажется, const защищает данные. Но это не так.

🔶 Что делает const

Фиксирует ссылку на значение, а не само значение. По спецификации (ECMAScript §13.3.1.1), переменная, объявленная через const, не может быть переназначена.


const user = { name: "Alex" };
user = {}; // TypeError


🔶 Но можно менять внутренности объекта

user.name = "Bob"; // работает


Сам объект остаётся в памяти по той же ссылке.

🔶 Как зафиксировать структуру

Object.freeze(user);
user.name = "Carol"; // не изменится


const защищает ссылку, а не содержимое.
Чтобы зафиксировать данные — используйте Object.freeze() или иммутабельные копии ({...obj}).

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

#career_merge
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱87🥰2👍1
💡 JavaScript-разминка

Что вернёт код на картинке выше ⬆️

Массив вроде есть, но что хранится в array[0]…

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

#code_battle
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱9🥰4👍1
⚙️ React Compiler теперь можно выключить прямо в функции

Новая директива — "use no memo" — отключает оптимизацию React Compiler.

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


function MyComponent() {
"use no memo";
// ...
}


Как работает:

— Полностью исключает функцию из оптимизации.

— Срабатывает даже при режиме all.

— Аналог — "use no forget".

Важно:

— Должна стоять первой в функции.

— Только одинарные или двойные кавычки (не бэктики).

— Временное решение, не постоянный паттерн.

А вы уже пробовали React Compiler:

❤️ — Да, работает быстро
👍 — Пока изучаю

🔗 Ссылка на документацию

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

#readme #react
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🥰2😢2🥱2
⚡️ Next.js вернул молниеносную клиентскую навигацию

После выхода React Server Components в Next 15 разработчики жаловались — клиентская навигация стала ощущаться тяжелее.

Теперь Vercel исправил это: в игру вступили Cache Components — новая система частичного предрендера и умного префетча.

➡️ В карточках — что именно изменилось под капотом и как Next снова стал “snappy”.

📎 Оригинал статьи

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

#under_hood #js
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥3🥰2😢1
This media is not supported in your browser
VIEW IN TELEGRAM
📱 Chrome теперь сам переводит интерфейсы

Google тихо вкатил в Chrome 143 локальные AI-возможности: теперь браузер умеет распознавать язык и переводить текст прямо на устройстве, без внешних сервисов.

🔤 Всё — на Next.js 16 + React 19, без единого запроса к серверу.

🔥 Как это работает:

— LanguageDetector мгновенно определяет язык текста локально.

— Translator создаёт пару “source → target” и переводит прямо в браузере.

— При первом запуске модель (1–2 ГБ) скачивается один раз и кешируется.

— Весь процесс — полностью приватный и офлайн.

📎 Читать подробнее

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

#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6👍2