Рубрика «React» - 4

После работы над множеством фронтенд- и full-stack-проектов (в основном React + TypeScript + какой-нибудь сервер/бэкенд), я постоянно возвращаюсь к одному и тому же небольшому набору паттернов. Они добавляют структуру, снижают когнитивную нагрузку и делают кодовую базу поддерживаемой даже при росте.

Это не революционные идеи — просто прагматичные решения, которые хорошо работают в разных приложениях. Вот текущий набор, который я использую почти всегда.

1. React Query + фабрика ключей запросов (Query Key Factory)

Я использую TanStack QueryЧитать полностью »

Серия 1. Как всё начиналось. Долгий путь к собственному инструменту

1997 год – формирование коллекции

Сначала это были просто видеокассеты с любимыми фильмами — без особой системы, без структуры, без мысли о будущем.

Со временем их становилось всё больше. К началу нулевых, на пике своего размера, коллекция насчитывала около 450 видеокассет. И в какой-то момент возник вполне естественный вопрос: всё это нужно как-то систематизировать, завести хотя бы минимальный учёт.

Самым очевидным и доступным инструментом стал MS ExcelЧитать полностью »

Две проблемы React-разработчика

У React-разработчика две беды:

  • Целевые данные изменились, а ререндера не произошло.

  • Целевые данные не изменились, а ререндер произошёл.

Есть много способов подружить данные с UI. В рамках этой статьи я пройдусь по популярным подходам: разберём, как устроены подпискиЧитать полностью »

Введение

Evershop https://evershop.io — опенсорсная платформа для создания интернет-магазинов на Node.js. Платформа включает необходимый функционал: интеграции с платежными системами (Stripe, PayPal), админ-панель для управления заказами и контентом, систему промокодов и аналитику продаж.

Официальная документация Evershop не покрывает многие практические аспекты разработки. Данная статья — практическое руководство по созданию интернет-магазина на основе Evershop, включающее:

  • Пошаговую настройку проекта

  • Создание тем и расширений

  • Решение типичных проблем и необходимые патчи

  • Читать полностью »

Ох уж этот некст и реакт

Ох уж этот некст и реакт

Предисловие

Привет! Меня зовут Андрей, я ведущий специалист кибербезопасности в Digital агентстве Фкор, а также её генеральный директор. Наша команда недавно столкнулась с серьезной проблемой. Как мы её прозвали в команде "зимняя уязвимость" реакта.
Читать полностью »

Привет! Представляю shadcn-glass-ui — React-библиотеку с glassmorphism-эффектами, которая устанавливается поверх существующих shadcn/ui проектов за 2 команды. Никакой миграции, никакого переписывания кода — просто добавьте glass-варианты ваших компонентов.

Demo

Demo

TL;DR

Читать полностью »

Всем привет! Меня зовут Анатолий, я представляю команду Front-End разработки компании DD Planet.

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

Рождение

Внедрение архитектуры: от хаоса к порядку - 1

Привет! Меня зовут Нияз, frontend тимлид из Казахстана. Это мой первый пост — делюсь скриптами, которые сэкономили неделю работы.

Проблема

HR-платформа, 8000+ TypeScript файлов, весь текст захардкожен на русском. Бизнес хочет английский и казахский.

<Button>Сохранить</Button>
<span>Привет, {userName}!</span>
const error = "Произошла ошибка";

Руками — это неделя копипасты и сотни пропущенных строк. Решил написать скрипты.

Результат

Читать полностью »

Метрика

Значение

Ключей перевода

9,823

Привет! Хочу рассказать о своей библиотеке hq-cropper — инструменте для обрезки изображений на чистом TypeScript без единой зависимости.

Когда искал cropper для своего проекта, столкнулся с двумя проблемами. Во-первых, большинство популярных решений тянут за собой кучу зависимостей и весят 100+ KB. Во-вторых, мало кто работает с большими изображениями.

Решил написать своё решение: лёгкое, без зависимостей, с умным алгоритмом масштабирования.

Проблема больших изображений

Ситуация: пользователь загружает фото 4000×3000 пикселей, а вам нужен аватар 200×200. Большинство кропперов справляются с этим плохо:


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js