Category : javascript

javascript
Оптимизация React-приложений: Используем useTransition, useDeferredValue и useOptimistic для плавно…

Изображение, созданное DALL-E Веб-приложения сегодня требуют всё большей интерактивности, отзывчивости и быстродействия. В ответ на это команда React постоянно совершенствует инструментарий, позволяющий нам тонко управлять рендерингом и пользовательским опытом. Если вы работали только с классическими методами оптимизации вроде useMemo, useCallback, мемоизации компонент через React.memo и другими известными приёмами, то вас могут заинтересовать следующие хуки:useTransition - устанавливает прио…

  • понедельник, 30 декабря 2024 г. в 00:00:07
javascript
Почему важно проверять response.ok в Fetch API и почему HTTP-ошибки не вызывают отклонение промисов

Если ты читаешь эту статью, значит, ты уже начал погружаться в асинхронный JavaScript и, в частности, в работу с промисами и fetch. Как и в любом новом деле, здесь есть свои нюансы, которые важно понимать, чтобы писать надежный код. Один из таких нюансов — это проверка на response.ok. Давай разберемся, зачем это нужно и почему без этого можно попасть в неприятности.Посмотри, пожалуйста, на эту строчку кода:fetch(url).then(response => response.json()).catch(error => console.log(error))Если…

  • понедельник, 30 декабря 2024 г. в 00:00:07
javascript
Используем всю мощь JavaScript для написания счётчика. Разбор от Олега Иванова, фронтенд-разработчи…

Приветствуют читателей Хабра. Меня зовут Олег Иванов, последние пару лет являюсь фронтенд-разработчиком в ит-компании WMT Group. В этой статье не будет серьёзных рассуждений, глобальных задач и историй успеха. Скандалов, интриг и расследований из глобального ит-мира тоже не планируется.Вместо этого мы напишем функцию-счётчика на JavaScript. Несколько раз, причём всякий раз по-разному с пользой.Казалось бы, задача простейшая, даже старый-добрый to-do list куда сложнее и заковыристее. Предложени…

  • воскресенье, 29 декабря 2024 г. в 00:00:05
javascript
Порты в веб-разработке: от локальной разработки до продакшена

Эта статья предназначена в первую очередь для веб-разработчиков. Я не являюсь экспертом в области сетей, администрирования или DevOps, поэтому представленный материал не углубляется в сетевые аспекты. Из любопытства, я как то задался вопросом практического использования разных номеров портов: что они означают для разработчиков, почему используются определенные порты, и какие приложения чаще всего запускаются на них. Цель статьи — пролить немного света на эти “магические” циферки с точки зрения …

  • воскресенье, 29 декабря 2024 г. в 00:00:04
javascript
Фронт без бэка: как мы сумели собрать тысячу форм в одну систему и не потерять рассудок

Когда три года назад в июле к нам пришли с просьбой сделать фронтенд для маленькой системы документооборота, мы оценили задачу в полгода… ТЗ принесли на создание более 1000 разных форм. Обещанные нами полгода перестали казаться спокойными. Через пару недель к задаче добавились две крупные системы на 1С и ещё несколько в разработке, с бэкендами на С++ и Java. Объём работы стал выглядеть неподъёмно. Плюс основное требование — всё должно быть в едином интерфейсе. Так мы поняли, что нужно браться…

  • суббота, 28 декабря 2024 г. в 00:00:13
javascript
Как приготовить обфускацию в JavaScript и не сжечь лабораторию: AST, babel, плагины

ВступлениеВероятно каждый программист или компания, сталкивались с мыслями о своей крутости или хотя бы крутости своих алгоритмов 😎. Разумеется, в этом случае может возникнуть соответствующее нежелание делиться разработками с широкой аудиторией. Данная проблема минимизируется переносом части кода на сервер (если речь идёт о клиент-серверных приложениях). Однако, такой подход не всегда применим, и порой обстоятельства вынуждают нас оставлять чувствительные участки кода прямо на виду.В этой стать…

  • суббота, 28 декабря 2024 г. в 00:00:12
javascript
Вы всё ещё устанавливаете display:none по таймауту? Тогда мы идём к вам

Дисклеймер: хотел создать скромный пост, а не статью, но не справился с управлением новым редактором. А старый редактор не поддерживает посты. Допустим, у нас есть блок (скажем, бутстраповская ячейка <div class="col-12">) и мы хотим её схлопывать (скажем, по клику на кнопке). Пишем пару простых классов: :root { … --fast: 0.4s; --all-fast-ease: all var(--fast) ease; … } .all-fast-ease { transition: var(--all-fast-ease); } .collapsed { overflow: hidden; height: 0; } П…

  • суббота, 28 декабря 2024 г. в 00:00:10
javascript
useActionState: новый герой в мире React

Photo by Esteban López on UnsplashПривет, бравый покоритель фронтенда! Если ты когда-либо ковырялся в React и думал: «Эх, как же устроить красивую и понятную обработку состояния?», то вот новсть: есть такой хук - useActionState, и он может стать твоим лучшим другом.Но постой! Разве раньше не было чего-то похожего под названием useFormState? И почему одни разработчики импортируют это из react-dom, а другие из react? Если такие вопросы посещали твою светлую голову, то добро пожаловать: сейчас мы …

  • суббота, 28 декабря 2024 г. в 00:00:09
javascript
Интеграция CSS-фреймворков в Angular: советы, которые вы не знали

Вы создали новое Angular‑приложение, подключили популярный CSS‑фреймворк, но вместо ожидаемого вау‑эффекта столкнулись с проблемами: стили выглядят не так, как хотелось, валидация форм работает странно, а некоторые элементы вообще не реагируют на изменения состояния. Знакомо? Это типичная ситуация, когда CSS‑фреймворки интегрируются без учета особенностей Angular.Эта статья поможет вам разобраться, почему возникают такие трудности, и покажет, как правильно интегрировать CSS‑фреймворки в Angular…

  • суббота, 28 декабря 2024 г. в 00:00:09