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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5b6884689c2151c820bb4
Download Telegram
😓 Роутинг в SPA — боль

Классика: слушаем click, ставим preventDefault(), делаем history.pushState(), потом ловим popstate и рендерим контент.
Работает, но это куча бойлерплейта и расхождений между состоянием, URL и историей.

Почему так:

History API не создавался под SPA. Он не умеет централизованно управлять всеми типами навигации и не даёт понять, когда переход «завершён», чтобы безопасно менять UI и скролл.

🔤 Нормальное решение — Navigation API (эксперимент, Chrome 102+):

• navigate — единое событие для всех переходов
• event.intercept() — перехват и свой обработчик (загрузили данные, отрисовали, проверили доступ)
• event.scroll() — нативный скролл
• { committed, finished } — когда менять URL и когда переход реально завершён
• entries() и currentEntry — история как нормальные объекты со state


Fallback:

Если window.navigation нет, остаёмся на старом pushState.


if ('navigation' in window) {
navigation.addEventListener('navigate', (event) => {
if (shouldNotIntercept(event)) return;
const url = new URL(event.destination.url);

event.intercept({
async handler() {
renderSkeleton();
const html = await fetchPage(url.pathname);
render(html);
event.scroll();
},
});
});

const { committed, finished } = navigation.navigate('/profile');
committed.then(() => showLoading());
finished.finally(() => hideLoading());
}


📦 Поддержка:

Chromium 102+, Safari (новые версии), Firefox — пока нет.
API экспериментальный, используйте feature-detect.

📎 Официальная спецификация

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

#hotfix #js
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰53🔥1
JavaScript js reference.pdf
4.1 MB
📘 Справочник по JavaScript

400+ страниц решений на все случаи жизни:

〰️ Как правильно работать с массивами? — 30+ методов с примерами

〰️ Что такое замыкания и зачем они нужны? — объясняем на пальцах

〰️ Почему промисы лучше колбэков? — сравнение с кодом

〰️ Как отловить баг в консоли? — 9 способов debugging

105 глав. От переменных до unit-тестирования. Каждая тема — с примерами кода и пояснениями.

Ставь ❤️, если было полезно

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

#readme #js
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍2🥰2
🏦 Как Tinkoff снимает тревожность там, где ошибка стоит слишком дорого

Финансовые действия — самый напряжённый момент для пользователя. В Tinkoff интерфейс устраняет это напряжение: всё работает быстро, прозрачно и предсказуемо.

🆚 Мгновенные обновления, ясные подсказки перед переводами, связанная история операций и единая логика статусов — детали, которые формируют ощущение контроля.

➡️ В карточках — разбор фронтенд-решений, которые создают эту надёжность: от optimistic UI до стриминга в чате и мгновенного пересчёта лимитов.

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

#ux_review
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁2
📘 Хочешь в Data Science, но есть пробелы в знаниях математики?

Мы сделали экспресс-курс «Математика для Data Science», который за 2 месяца даст тебе фундамент, без которого ни одна ML-модель не взлетит 🚀

Что тебя ждёт:
🔹 живые вебинары с экспертами (НИУ ВШЭ, SberAI, Wildberries&Russ);
🔹 практика в Python, квизы и проверка заданий экспертами;
🔹 матрицы, регрессии, вероятности и статистика: всё на примерах из реальных задач;
🔹 старт — 4 декабря.

🔥 Не упусти халяву: сейчас 40% до 30 ноября

👉 Записаться на курс
👏3
📌 Дайджест обновлений

➡️ Tailwind CSS v4.1.17

Исправили баги с @variant и падения на Windows — релиз полностью про стабильность.

➡️ Node.js v25.2.0

Добавили расширенные возможности util.deprecate(), улучшили обработку localStorage, стабилизировали type-stripping и обновили движок V8.

➡️ Dependency Cruiser 17.3

Добавили поддержку импорта через process.getBuiltinModule() и поправили работу API c tsconfig.

➡️ Ink 6.5

Появился новый параметр incrementalRendering для постепенного рендеринга.

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

#release_digest
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1