Обновить
24.95

ReactJS *

JavaScript-библиотека для создания интерфейсов

Сначала показывать
Период
Уровень сложности

Унификация цифровых продуктов «Северстали»

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели1.4K

Всем привет! Меня зовут Иван Кузнецов, я руковожу группой «Дизайн и клиентский сервис» в ИТ-команде «Северстали» Если в первой части мы поделились предпосылками, целями и общим видением будущей системы, то сейчас настало время заглянуть «под капот» и рассказать о том, как мы воплотили эти идеи в жизнь. Здесь подробно обсудим архитектурный подход, ключевые принципы построения системы, а также познакомим вас с важнейшим её аспектом – токенной системой, которая обеспечивает единообразие и адаптивность продуктов построенных на её базе.

Читать далее

Почти Ванильный Фронтэнд

Время на прочтение6 мин
Охват и читатели1.4K

Почти — потому что используется всего две функции из библиотеки:

Создать элемент DOM

Обновить элемент DOM

Эта библиотека упрощает использование нативных функций DOM, таких как createElement и replaceChild. Библиотека Fusor направлена на то, чтобы сделать эти функции проще и компактнее.

Ниже приведены примеры распространенных проблем. Попробуйте воспроизвести их с использованием инструментов, которые вы сейчас используете. Вы можете быть удивлены, обнаружив, что разработка с Fusor может быть наиболее компактным, гибким, легким и производительным способом создания фронтенд-приложений.

Читать далее

Make Data Visualization Great Again (или как мы создавали свой инструмент визуализации данных)

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели2.3K

Всем привет! Меня зовут Олег Косарев. Я – ведущий инженер-программист. В группе компаний «Цифра» занимаюсь развитием и поддержкой продукта «Диспетчер». Моя основная специализация – Frontend-разработка.

В данной статье я хочу поделиться с вами нашим опытом по созданию MVP (Minimum Viable Product, «минимально жизнеспособный продукт») редактора аналитических панелей.

Читать далее

Классическая жизнь фронтенд-приложений и их сопровождение

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели2.9K

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

Читать далее

Гибкий лэйаут для динамических форм с react-jsonschema-form

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели1.7K

Если ваша форма разрастается и превращается в бесконечный список полей, стандартного функционала react-jsonschema-form может быть недостаточно. Я покажу, как легко расширить возможности библиотеки и организовать поля в удобный многоколоночный макет.

Читать далее

Почему долгосрочное планирование не работает в UI-разработке?

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели581

Эта статья была написана для конкурса Технотекст-7 «Тот момент, когда происходит изменение». Тема адаптации UI к меняющимся деталям была выбрана, так как связана с темой конкурса.

Современная UI-разработка живет быстрыми темпами. Мы постоянно создаем и меняем код, чтобы соответствовать новым трендам, но часто это делается «на коленке» и без долгосрочного видения. В итоге уже через пару месяцев все, что казалось суперсовременным, превращается в легаси из-за смены моды фреймворков и других деталей реализации.

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

Читать далее

Попытка написать свою реализацию встроенных хуков состояния в React + создание простого стейт менеджера

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели907

Недавно давно я смотрел ничем не примечательный техническое интервью и услышал фразу от интервьюируемого: «Ну можно написать свой useReducer или useState». Мне врезалась эта фраза в голову, ибо я никогда в серьез не задумывался как они работают под капотом и в исходниках особо не копался, максимум в типах. Поэтому я решил их воссоздать с минимальным количеством зависимостей и попытался интегрировать в реакт.

Читать далее

React Context

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.6K

Всем привет! Меня зовут Андрей, я Frontend разработчик. На данный момент работаю на фрилансе. Имею достаточно хороший опыт работы с React.

Хочу рассказать, что такое React Context и как это можно использовать в проектах.
Попробую всё рассказать как можно проще.

Читать далее

shadcn-glass-ui: Glassmorphism поверх shadcn/ui без миграции

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели8.9K

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

Читать далее

Анимированный UI: как улучшить взаимодействие с пользователем

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели5.1K

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

В продакшене анимация всегда балансирует между выразительностью и производительностью. Чем сложнее сцена, тем выше нагрузка на процессор, особенно на мобильных устройствах. Поэтому важно оптимизировать: использовать GPU-дружественные свойства (transform, opacity), избегать тяжёлых reflow, а для сложных эффектов — применять библиотеку, которая работает с отложенным рендерингом, например Framer Motion или GSAP. Это не только повышает плавность, но и снижает энергопотребление, что прямо влияет на опыт пользователя.

Когда команда проектирует систему анимаций, важно фиксировать принципы в дизайн-системе. Это помогает избежать хаоса и гарантирует согласованность между продуктами. Хорошая практика — описывать длительность, кривые ускорения и паттерны движения как переменные, чтобы и дизайнеры, и разработчики говорили на одном языке. Например, motion-tokens, где заданы типовые параметры переходов: fast-out-slow-in, linear-out-slow-in и т.д.

На зрелом уровне анимация становится не надстройкой, а частью архитектуры интерфейса. Она помогает продукту чувствоваться цельным, обеспечивает предсказуемость и ритм, а главное — создаёт ощущение «живого» цифрового опыта. Привет, я Максим, frontend-разработчик в компании SimbirSoft, в этой статье расскажу, как сделать полезный для пользователя UI.

Читать далее

Как я создал аналог западной обучающей платформы — Quaize

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели8.1K

Меня зовут Артём. Я — fullstack-разработчик уровня Middle, работаю с проектами на Python, JavaScript, Golang, Rust. В этой статье хочу рассказать о том, как я, подсмотрев западное приложение Kahoot, решил с нуля разработать собственную платформу для интерактивного обучения с огромным количеством ИИ-функций.

Читать далее

Фронтенд обгоняет бек или как мы написали 200_000 строк кода на моках

Время на прочтение14 мин
Охват и читатели9.7K

Я работаю старшим фронтенд-разработчиком в it-отделе одного из крупнейших федеральных застройщиков. Специфика разработки в такой непрофильной компании — сроки спускаемые сверху и вообще не имеющие корреляции с реальными ресурсами и возможностями команды. Именно поэтому мы работаем очень быстро, постоянно пытаясь получить (максимум результата)*3 за (минимум времени)/4.

В этих условиях мы делали большие интеграции с headless CMS Directus и непосредственно с бекендом, используя моковые данные на фронте.
Интеграции были большие и быстрые — и вот тут-то и стало видно, что большинство фронтенд-разработчиков не очень понимают, как подготовить интеграцию, чтобы потом было быстро и не больно заменять моки на реальные ответы. В этой статье пойдет речь о таких подходах на фронтенде,

Читать далее

Структура против хаоса — практическая валидация форм с помощью Zod

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели6.4K

Всем привет, с вами Артем Леванов, Front Lead в компании WebRise.

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

Следующая проблема, с которой сталкивается любая форма — валидация.

Формы могут быть красивыми и структурными, но без единого подхода к валидации они быстро превращаются в хаос.

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

Читать далее

Ближайшие события

«Баги из ниоткуда»: почему компоненты React ломаются «сами по себе» и как это исправить

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.1K

Прямая мутация данных — ситуация, когда мы меняем объект или массив по существующей ссылке, не создавая новую копию. В React это одна из самых частых и при этом самых коварных ошибок. Она нарушает принцип неизменяемости (immutability) — если данные изменились, должен появиться новый объект, а старый оставаться без изменений.

На этом принципе строятся ключевые механизмы React: сравнение пропсов и состояния, оптимизации через мемоизацию и предсказуемость ререндеров. Если данные меняются напрямую, часть компонентов не обновляется, появляются случайные баги, а отладка становится сложнее.

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

Читать далее

Как сделать сайт бесконечно ленивым. Часть 2: Графы зависимостей

Уровень сложностиСложный
Время на прочтение17 мин
Охват и читатели6K

Ранее мы обсуждали самые основы ленивой загрузки и то, почему она вообще важна. А в этой статье мы рассмотрим следующее:
- Как бандлеры анализируют файлы исходного кода, строят деревья зависимостей и генерируют файлы для сборки.
- Как они генерируют файлы JavaScript из исходного кода.
- Как браузеры решают, какие сгенерированные файлы следует загружать, чтобы отобразить ленивую страницу/компонент.
- И как мы можем уменьшить размер и количество загружаемых файлов, правильно настроив структуру файлов и корректно используя статический импорт.

Читать далее

Грани полиморфизма в React: паттерн as

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели11K

Всем привет! Сегодня я возвращаюсь с новой порцией TypeScript- и React-магии. Вместе разберем полиморфизм в React, а именно — паттерн as. Зачем он нужен, как его прикрутить без багов и почему это сделает ваши компоненты в разы круче. Как обычно — всё под катом.

Посмотреть

Веб. К черту фреймворки! Пишем свой starter-kit с роутером и сторами. Часть 3

Уровень сложностиСложный
Время на прочтение13 мин
Охват и читатели8.8K

Последняя часть по созданию своего starter-kit.

В этой статье мы рассмотрим основные подходы борьбы со сложностью с помощью веб-компонентов. Статья рассчитана на более-менее подготовленных читателей. Материал насыщен ссылками, которые очень желательно изучить.

Читать далее

LiqTrade: от идеи до Production Ready за 3 месяца. Нельзя закончить допиливать проект, можно лишь перестать…

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели5.7K

Solo developer journey: Как я довел B2B платформу от 8.5/10 до 8.8/10, исправил 13 критических багов, прошел Context7 MCP аудит и успешно задеплоил на production с первыми пользователями.

После первой части (концепция и MVP) и второй части (решение технических проблем), настал момент истины - финальная подготовка к production.

Читать далее

От визитки до медиа-платформы: как я делаю сайт для своей музыки

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели5.5K

Я разобью весь свой путь на три части. Потому что ещё не дошёл до конца 🙂
По мере разработки буду рассказывать, что получилось, а вы - как всегда - подскажете, где я налажал и как можно сделать лучше.

Читать далее

LiqTrade: От идеи до production-ready платформы. Часть 2: Реальные проблемы и их решения

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели6.3K

Продолжение статьи о разработке B2B платформы международной торговли

Прошло несколько месяцев с момента публикации первой части, где мы рассказали о концепции и начальном этапе разработки LiqTrade. За это время проект прошел путь от MVP до полноценной production‑ready платформы.

В этой статье я хочу поделиться реальными проблемами, с которыми мы столкнулись, и способами их решения. Никакого идеализированного «как всё прекрасно работает» — только честный разбор косяков, рефакторинга и технического долга.

Дисклеймер: Если вы ищете статью в стиле «10 строк кода, и ваш стартап взлетел» — это не здесь. Здесь будет про то, как мы 3 раза переписывали систему ролей, боролись с circular dependencies и почему наш bundle вырос до 1.2 МБ (спойлер: мы его победили).

Читать далее

Вклад авторов