Раньше для плавной анимации между состояниями приходилось городить свои анимации и тащить JS-утилиты. Теперь достаточно одного вызова API + немного CSS.
document.startViewTransition(() => { /* обновляем DOM */ }) делает снимок DOM «до» и «после», а браузер сам строит плавный переход между ними.
Элементы с одинаковым view-transition-name анимируются как связанные: старое состояние плавно превращается в новое.
✨ Идеально для:
- переходов между страницами
- раскрытия карточек
- галерей и модальных окон
- лёгких SPA без фреймворков
⚠️ Поддержка:
Same-document переходы (SPA):
- Chrome 111+, Edge 111+
- Safari 18+
- Firefox 144+
Cross-document переходы (MPA):
- Chrome 126+, Edge 126+
- Safari 18.2+
- Firefox — пока не поддерживается
Используйте как прогрессивное улучшение: в старых браузерах будет обычная навигация.
#readme #js #css
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🥰2👍1
🚀 В IT ценится не перфекционизм, а движение вперёд, и если вы давно откладывали обучение — самое время начать.
❤️ Proglib Academy продлевает розыгрыш MacBook Pro 14 до 30 ноября!
Что нужно:
⚡️ выбрать курс;
⚡️ пройти минимум две недели обучения (можно за два вечера);
⚡️ написать куратору #розыгрыш;
⚡️ забрать макбук.
🎓 Курсы, которые участвуют
👉 Участвовать
❤️ Proglib Academy продлевает розыгрыш MacBook Pro 14 до 30 ноября!
Что нужно:
⚡️ выбрать курс;
⚡️ пройти минимум две недели обучения (можно за два вечера);
⚡️ написать куратору #розыгрыш;
⚡️ забрать макбук.
🎓 Курсы, которые участвуют
👉 Участвовать
👍4
👍5❤2
🔥 Каверзный вопрос с собеса
Метод
🔍 Что происходит на самом деле:
➕ radix = 0 означает автоопределение системы счисления:
• если строка начинается с '0x' или '0X' → основание = 16
• во всех остальных случаях → используется основание = 10
Поэтому '1' интерпретируется как десятичная.
➕ системы счисления с основанием 1 не существует => Nan
➕ '11' в двоичной системе — это 3₁₀ => 3
❇️ parseInt('11', 2) парсит всю строку как двоичную, потому что она корректна полностью.
Распространённый миф — будто бы берётся только первый символ; это неверно.
✅ Как исправить:
Или проще:
🐸 Библиотека фронтендера
#career_merge #middle
Метод
.map() передаёт в колбэк три аргумента: текущий элемент, индекс и исходный массив. Функция parseInt принимает: строку и radix — основание системы счисления. Поэтому индекс массива попадает в radix.
parseInt('1', 0)
• если строка начинается с '0x' или '0X' → основание = 16
• во всех остальных случаях → используется основание = 10
Поэтому '1' интерпретируется как десятичная.
parseInt('7', 1)
parseInt('11', 2)
Распространённый миф — будто бы берётся только первый символ; это неверно.
['1', '7', '11'].map(str => parseInt(str))
Или проще:
['1', '7', '11'].map(Number)
#career_merge #middle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🤩3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19💯4❤2
🚀 AbortController — как правильно отменять запросы
➡️ Проблема (1 картинка):
Пользователь быстро переключает вкладки или вводит текст в поиске. Старые запросы продолжают работать и могут перезаписать актуальные данные.
➡️ Решение (2 картинка):
Отменяйте предыдущие запросы через AbortController
Что это даёт:
🟢 Нет race condition — обновляется только последний запрос
🟢 Браузер действительно отменяет запрос на уровне сети
🟢 Код без лишних флагов вроде isCancelled
🟢 Работает с API, которые поддерживают AbortSignal (fetch, Axios ≥0.22, React Query)
Когда применять:
— Автодополнение и live-поиск
— Переключение вкладок и фильтров
— Отмена запросов при размонтировании компонента
— Повторные запросы в useEffect при изменении зависимостей
⚠️ Важные детали:
controller.abort() можно вызывать многократно — это безопасно
Отмена происходит на стороне клиента — запрос может дойти до сервера
После abort() новые запросы с тем же controller не сработают (создавайте новый)
Поддержка:
🟣 Fetch API — нативно
🟣 Axios ≥ 0.22 — через signal
🟣 React Query — через queryFn
🐸 Библиотека фронтендера
#hotfix #react
Пользователь быстро переключает вкладки или вводит текст в поиске. Старые запросы продолжают работать и могут перезаписать актуальные данные.
Отменяйте предыдущие запросы через AbortController
Что это даёт:
Когда применять:
— Автодополнение и live-поиск
— Переключение вкладок и фильтров
— Отмена запросов при размонтировании компонента
— Повторные запросы в useEffect при изменении зависимостей
⚠️ Важные детали:
controller.abort() можно вызывать многократно — это безопасно
Отмена происходит на стороне клиента — запрос может дойти до сервера
После abort() новые запросы с тем же controller не сработают (создавайте новый)
Поддержка:
#hotfix #react
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🥰4❤2
Vue 3 использует Proxy, чтобы отслеживать изменения данных и обновлять только те части интерфейса, которые зависят от изменённых свойств.
#under_hood
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍2
🎓 Экспресс-курс «Математика для Data Science» стартует 4 декабря
Этот курс для вас, если вы:
🧑💻 Программист
Когда нужно понять, что происходит «под капотом» ML-алгоритмов.
📊 Начинающий DS / аналитик / студент
Чтобы закрыть теорию, подтянуть фундамент и собрать портфолио.
📈 Смежный специалист
Чтобы уверенно работать с моделями, статистикой и гипотезами.
🎁 Сейчас лучший момент стартовать:
— скидка 40% на курс до конца ноября
— можно пройти бесплатный тест на знание основ математики
👉 Записаться на курс
Этот курс для вас, если вы:
🧑💻 Программист
Когда нужно понять, что происходит «под капотом» ML-алгоритмов.
📊 Начинающий DS / аналитик / студент
Чтобы закрыть теорию, подтянуть фундамент и собрать портфолио.
📈 Смежный специалист
Чтобы уверенно работать с моделями, статистикой и гипотезами.
🎁 Сейчас лучший момент стартовать:
— скидка 40% на курс до конца ноября
— можно пройти бесплатный тест на знание основ математики
👉 Записаться на курс
🔥4
Какие веб-анимации быстрые, какие тормозят браузер, и почему безопаснее всего анимировать transform и opacity. Помогает быстро выбирать плавные анимации без лишней нагрузки.
Когда useTransition реально улучшает плавность интерфейса, а когда только усложняет код.
Какие идеи позволили сделать сборку мусора быстрее и менее заметной для пользователя.
#read_watch
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2🥰2❤1