React — это JavaScript-библиотека для создания пользовательских интерфейсов — такое определение дают авторы технологии. Разберём по частям.
JavaScript (JS) — это единственный язык программирования для описания поведения элементов на странице в браузере: он делает интерфейсы интерактивными. Простой пример работы JS — реакция на действия пользователя:
Например, в гугл-документах работа JavaScript выглядит так:
Комментарий в гугл-документе появляется без обновления страницы — это возможно благодаря JavaScript
Фреймворк ограничивает разработчика в выборе инструментов, но гарантирует, что решит типовые задачи однозначным способом по стандартам качества. Библиотека же не определяет, какие технологии использовать, что создавать и как, — это упрощает обучение и даёт больше гибкости, но возлагает на разработчика ответственность за код и выбранные инструменты.
Пользовательские интерфейсы — то, что видит пользователь на сайте, в мобильном приложении, VR-очках, чат-боте, на экране умных часов и так далее.
С определением разобрались, теперь о том, для чего нужен React.js и как его использовать.
React.js работает на идее декларативного подхода. Это называется «UI — функция данных» — разработчик описывает, как ведёт себя интерфейс в зависимости от данных и событий, например: — для каждого пользователя в чате нарисуй кнопку-крестик в списке с аватарками; — если пользователь нажал на крестик, убери из списка пользователей того, рядом с чьей аватаркой этот крестик.
С React разработчику не придётся описывать подробности. Давайте сравним решение с библиотекой и без при такой задаче: удалить пользователя из списка чата, если другой пользователь нажал на крестик рядом с ним.
Фишка в том, что создание и конфигурация компонентов — это отдельные процессы. Сначала разработчик рассказывает, как выглядит и ведёт себя компонент, например кнопка, и какие его свойства можно настраивать. А потом размещает конфигурации кнопок в разных местах, условно: в форме — среднюю зелёную, в корзине — большую жёлтую, на главном экране — маленькую серую.
Можно сравнить, как выглядит код для одного и того же популярного приложения — списка задач, если использовать JavaScript без библиотек или JavaScript и React.
React используют во многих проектах благодаря сочетанию нескольких преимуществ. Именно они сделали библиотеку одним из основных инструментов современной фронтенд-разработки.
React в 2013 году разработали в Facebook*. Но сейчас React — это проект с открытым кодом, в который каждый разработчик может предлагать изменения. И популярен он не только у команды Цукерберга:
Количество установок разных библиотек за год. React — оранжевая линия. Данные сайта npmtrends.com
React используют в браузере, в умных телевизорах и часах, в мобильных приложениях, очках виртуальной реальности, консольных приложениях и чат-ботах. Везде. И разработчиков легко понять: если нужно сменить платформу, не придётся с нуля изучать новую технологию. Вместо этого можно взять знакомый React и адаптировать для местного интерфейса.
Универсальность. React — это JavaScript-библиотека, а JavaScript — популярный язык программирования, который используется всюду. Ни одна другая JS-библиотека не работает в таком количестве окружений и на таком количестве устройств.
Гибкость. React гибкий, потому что позволяет: — выбирать, какие библиотеки использовать, например, для контроля за переходами между экранами и хранения данных; — менять инструменты разработки; — сделать приложение полностью на React; — или использовать его для одной фишки. Выбирать вам.
Отличный DevX. UX — это пользовательский опыт, а DevX — опыт разработчика — то, насколько удобно, комфортно и просто разработчику взаимодействовать с технологией. И у React отличный DevX.
React существует 13 лет и за это время: — успели найти решения для всех типичных проблем; — придумали тысячи инструментов, которые делают жизнь разработчика проще; — сформировали вокруг библиотеки гигантскую и постоянно растущую экосистему.
Всё это делает React удобным для разработчика. А ещё у библиотеки много пользователей — это значит, что есть у кого перенять опыт и попросить совета.
Читаемость. В React приложение разбито на компоненты, поэтому в 9 случаях из 10 при поломке видно, в какой части кода беда: — разработчик видит, что сломалась кнопка; — идёт в компонент «кнопка» и устраняет проблему для всех кнопок разом.
Если же что-то ломается в JavaScript, то разработчик сначала идёт плакать. Потому что проблема может быть и на стороне HTML, и на стороне JS, и на стыке этих технологий, когда случается «рассинхрон» данных и отображения. Часто нет понятного разделения на файлы, приходится копаться. И главное — починка одной кнопки не исправит автоматически остальные.
И на чистом JavaScript можно написать прекрасный задокументированный и эффективный код, так библиотеки и появляются. И в React можно написать плохо читаемый код с багами, но сама библиотека делает эту задачу сложнее. Если разработчику приходится писать сложный, запутанный код для решения типичной проблемы в React, скорее всего, уже существует более простое и проверенное решение. Его можно найти в официальной документации React JS, на GitHub или с помощью ИИ-ассистентов.
React JS подходит для проектов разного масштаба — от небольших сервисов до крупных цифровых платформ. Чаще всего библиотеку используют в следующих направлениях:
После освоения базы можно переходить к изучению React, например начать с официального туториала по React на русском языке.
Ускорить прогресс при изучении React.js помогает обратная связь, ревью кода. Благодаря ревью код становится рабочим, читаемым и соответствует стандартам отрасли. Поэтому изучать React лучше с наставником или в рамках учебной группы.
* сервис предоставляется организацией, признанной экстремистской на территории РФ
React — это библиотека JavaScript для создания пользовательских интерфейсов. В отличие от большинства фреймворков, она отвечает только за отображение интерфейса и не навязывает структуру всего приложения. Поэтому разработчик сам выбирает инструменты для маршрутизации, хранения данных и других задач.
JavaScript — это язык программирования, а React JS — библиотека, написанная на JavaScript. На языке можно создавать самые разные программы, а React помогает быстрее разрабатывать современные пользовательские интерфейсы и управлять их состоянием.
JSX — это специальный синтаксис, который позволяет описывать интерфейс с помощью конструкций, похожих на HTML, прямо внутри JavaScript-кода. В итоге код компонентов становится более компактным и понятным, хотя перед запуском JSX автоматически преобразуется в обычный JavaScript.
Компоненты — это независимые части интерфейса: например, кнопки, формы, карточки товаров или меню. Из таких элементов собирается всё приложение. Если изменить компонент, обновления можно автоматически применить везде, где он используется.
Нет. Чтобы понять, что такое React, и эффективно использовать библиотеку во фронтенд-разработке, сначала стоит освоить основы JavaScript: переменные, функции, объекты, массивы, работу с событиями и современный синтаксис ES6+. После этого изучать React будет значительно проще, а многие его возможности станут понятны без заучивания.