Фронтендер от бога
3.51K subscribers
1.14K photos
19 videos
1.1K links
Божественные дайджесты по фронтенду и немного юмора.

По всем вопросам: @godinmedia
Download Telegram
Форматирование относительного времени в JavaScript

#почитать

API Intl.RelativeTimeFormat доступно в Baseline в статусе «Widely Available» с 16 марта 2023 года. Это мощный инструмент для отображения относительного времени в локализованном виде, например, «через минуту», «вчера» или «2 недели назад». Он автоматически адаптируется к языку и культурным особенностям региона, делая интерфейс более понятным и дружелюбным для пользователей.
В этой статье мы разберём, как работает Intl.RelativeTimeFormat, и приведём несколько примеров его использования.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Замыкание в JavaScript — зачем функциям личное пространство

#почитать

В разработке нам постоянно нужны «умные», самостоятельные функции: счетчики, которые знают свое предыдущее значение, обработчики событий с индивидуальными настройками, механизмы для защиты данных.
Чтобы не городить глобальные переменные и не писать громоздкие конструкции (что почти всегда ведет к багам), мы посмотрим на еще одну фишку JS.
В предыдущих статьях мы разобрали: функции, их стрелочные записи, методы объектов и даже покорили this. Теперь пора переходить к теме, которая часто пугает на собеседованиях, но на деле оказывается невероятно элегантной — замыканиям.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Интерактивный HTML с Alpine.js на простых примерах

#почитать

Большие фронтенд-фреймворки часто требуют сложной настройки: сборщики, роутинг, состояния, хуки, конфигурации. Но для небольших задач вроде выпадающих меню, модалок или табов этого слишком много — иногда хочется просто взять HTML и быстро добавить в него немного интерактивности.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
1
DOM-дерево — как не запутаться в ветвях объектной модели документа

#почитать

Бывало такое: смотрите вы на красивую страницу интернет-магазина, открываете консоль разработчика (ту самую, по F12 или через правый клик), а там — лес из тегов, который вообще не похож на то, что вы видите глазами?

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Запилил кросс-фреймворк Markdown/MDX парсер, чтобы не мучаться с контентом

#почитать

Долго я возился с маркдауном в своих проектах и, честно говоря, знатно подгорел. Первая проблема — это вечный выбор библиотеки.
С одной стороны, есть «конструкторы» типа unified, remark и rehype. Штуки мощные, но настраивать весь этот AST-конвейер и систему плагинов — это какой-то оверхед и лишняя сложность, имхо.
С другой стороны, есть @next/mdx, который вроде и ок, но слишком завязан на страницах и вообще не умеет работать на клиенте.
Раньше я обычно выбирал что-то вроде markdown-to-jsx или react-markdown.
DX у них приятнее, работают и на клиенте, и на сервере, весят мало.
Но вот беда: они «из коробки» не переваривают HTML или MDX, и ты снова вязнешь в настройке плагинов. А если добавить туда i18n (типа i18next или next-intl), начинается настоящий ад. Куча if/else в коде, чтобы отрендерить нужный язык, и бандл раздувается до небес. Плюс вечные косяки с front-matter. Ну и до недавнего времени всё это было только для React.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Всплытие переменных и функций в JavaScript

#почитать

В JavaScript есть уникальная особенность, переменную или функцию можно использовать по коду выше...

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
Хватит использовать JavaScript для решения задач CSS

#почитать

Недостаток знаний часто подталкивает людей к чрезмерно сложным решениям, и рано или поздно это отражается на производительности.
Возьмем content-visibility: auto. Он дает тот же эффект, что и React-Window, но без единой строчки JS и без увеличения размера сборки. Аналогичная ситуация с современными единицами высоты окна (dvh, svh, lvh): наконец-то приведена в порядок "мобильная" высота, которую годами пытались компенсировать через window.innerHeight.
Обе технологии в 2024 году получили более 90% поддержки современных браузеров и полностью готовы для продакшна. Однако мы по привычке продолжаем решать такие задачи с помощью JS, просто потому, что CSS незаметно ушел вперед, пока мы спорили о React Server Components.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍1
🌐 Мы неправильно используем useEffect

#посмотреть

В данном ролике поговорим с вами о useEffectи посмотрим доклад, который раскроет более подробно тему состояний.

Смотреть на YouTube ⏱️40 минут
Please open Telegram to view this post
VIEW IN TELEGRAM
Как мы искали безупречные данные в мире JavaScript

#почитать

Если вы когда-нибудь писали фронтенд на TypeScript и получали в проде Cannot read property 'x' of undefined, — добро пожаловать в клуб!
TypeScript спасает нас от сотен ошибок… но только пока код не запущен. Как только он скомпилировался, типы исчезают, и в рантайме вы снова остаетесь один на один с невалидными данными.
И вот тут начинается: меняется API, формы шлют что угодно, аналитика ломает отчёты, а тесты молчат.
В Островке мы попробовали библиотеку Valibot — легковесный runtime-валидатор, который умеет проверять данные на границах контекстов и при этом остаётся дружелюбным к TypeScript.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Что такое null-коалесцентный оператор ?? в JavaScript

#почитать

Операторы ?? и ??= стали доступны в Baseline в статусе «Widely Available» с 16 марта 2023 года. Они упрощают работу с переменными, которые могут быть null или undefined, позволяя задавать значения по умолчанию или обновлять переменные только в этих случаях. Это делает код чище и понятнее, особенно при работе с потенциально отсутствующими данными.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Экипировка Бонда: полезные инструменты DevTools

#почитать

Для любого специалиста в веб-разработке DevTools — это незаменимый инструмент диагностики. Однако его истинная мощь часто остаётся «в тени»: многие используют лишь базовый функционал, упуская из виду целый арсенал возможностей для тонкой настройки и глубокого анализа.
В этой статье я хочу сосредоточиться на практических приёмах, которые ежедневно использую сам.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Синтаксический сахар или технический деготь: классы в JavaScript

#почитать

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

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Мои любимые паттерны для full-stack и frontend-проектов

#почитать

Проверенные в бою паттерны для проектов на React + TypeScript: фабрики ключей запросов, server actions, права доступа через CASL и многое другое.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Полный гайд по объекту Date в JavaScript

#почитать

Объект Date позволяет создавать, сравнивать и форматировать дату и время. Используется для отображения текущего времени, вычисления интервалов и работы с таймзонами в веб-приложениях.

Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM