Коротко
-
01
Что за инструмент
React— библиотека инструментов для фронтенд-разработки
-
02
Какие задачи решаем с помощью технологии
Разработка приложений на React
Веб разработка на React
Мобильная разработка на React
Разработка сайта на React
Cоздание административной панели на React JS
-
03
Результаты
Панель администрирования делит пользователей на администратора и главного администратора
Панель поддерживает несколько разных интерфейсов
Благодаря декомпонированию и разделению логики компонентов интерфейс будет работать даже если сервер откажет
React и его особенности
Подробнее о том, что такое React: React, или React. js — это JavaScript-библиотека для создания интерфейсов сайтов и приложений. С его помощью создаются интерактивные элементы — кнопки, виджеты, чаты, карточки товаров и так далее.
React — это не фреймворк как таковой. Фреймворк включает набор библиотек, правил и инструментов для создания сайтов или приложений, то есть фреймворк — это комплексное решение. React. js — это только библиотека, то есть часть фреймворка.
Главная особенность React в том, что он позволяет работать с отдельными компонентами интерфейса, за счет чего сайты и приложения становятся более стабильными. Каждый созданный на Реакте элемент зависит от своего состояния, и если одна опция перестанет корректно работать, на другие это не повлияет. Это преимущество работы с React перед написанием сайта на чистом JavaScript. Страница, написанная на JS, монолитна, то есть ее компоненты зависят друг от друга, и если одна функция сломается — это повлияет на остальные.
Еще одна особенность элементов, созданных на Реакте, — их не обязательно прописывать заново каждый раз, когда нужно добавить опцию. Каждый созданный на Реакте компонент можно дублировать и добавлять в другие раздела и на другие страницы. Это становится возможным, так как каждый написанный с помощью React компонент содержит все нужные данные и методы для реализации конкретной функции.
Компоненты React. js пишутся на JSX. Это расширение языка JavaScript, а выглядит он как смесь JS и HTML. Он нужен как раз для того, чтобы работать с разными объектами на странице и делать их менее зависимыми от состояния других объектов. При этом объекты, которые выглядят в коде как HTML, остаются синтаксисом JSX. Поэтому разработчики пользуются платформами веб-разработки с поддержкой JavaScript-кода, например Node. js, для работы с React. Что такое Node. js, мы рассказывали в одной из предыдущих статей.
Плюсы и минусы работы с React
В отличие от полноценного фреймворка, React не влияет на общую архитектуру приложения или сайта, он может применяться более гибко. При этом работа на Реакте имеет много плюсов:
- декларативный подход. Это означает, что разработчику нужно описать только нужные состояния компонентов, а не процессы их изменения. Проще говоря, программист описывает только конечный результат — например, как будет выглядеть кнопка после того, как пользователь на нее нажал. Благодаря этому подходу разработка и отладка кода на Реакте проще, чем на чистом JavaScript;
- наглядность. Это следствие декларативности: так как при разработке на Реакте сразу описываются конечные состояния объектов, при написании кода понятно, как будет выглядеть элемент на странице;
- отзывчивость и эффективность программного продукта. React взаимодействует с виртуальной копией DOM, что расшифровывается как Document Object Model, то есть объектная модель документа. Такая модель содержит все элементы страницы сайта, а также информацию о связях между ними. Приложения на Реакте создают копию DOM в кэше и работают с ней. Когда пользователь совершает действие на странице, сначала обновляется виртуальная копия, сохраненная в кэше, а потом уже реальная. Благодаря этой опции пользователь моментально видит результат своих действий, даже если сайт очень «тяжелый» и для обновления реальной DOM нужно время;
- удобство добавления опций и их стабильная работа. Так как компоненты на Реакте самостоятельны, достаточно написать элемент один раз, а потом добавлять готовый фрагмент кода во все нужные разделы сайта. Такая самостоятельность компонентов обеспечивает и более стабильную работу. Исправность одной опции не влияет на работу другой, и если ломается что-то одно, цепной реакции не происходит — остальные функции работают правильно;
- однонаправленный поток данных. В написанных на Реакте приложениях компоненты, хотя и не влияют на работу друг друга напрямую, обмениваются данными и свойствами. При этом поток данных всегда нисходящий — от материнских компонентов к дочерним. Благодаря такой четкой иерархии отлаживать код намного проще — всегда понятно, откуда данные поступили к компоненту, и причины багов находятся быстро;
- совместимость с другими инструментами и расширениями. React популярен среди программистов, и энтузиасты создали множество дополнительных инструментов разработки, совместимых с React. Один из примеров — расширение React Native. Оно упрощает развертывание приложений в разных операционных системах за счет того, что задействует стандартные для каждой из них протоколы. Так приложение открывается на любом устройстве, используя его стандартные возможности.
Использование React облегчает процесс разработки и отладки продукта, но при работе с ним также могут возникать сложности. Они связаны с необходимостью использования дополнительных инструментов, частыми обновлениями библиотеки и непривычным для многих специфическим синтаксисом. Подробнее о минусах разработки на Реакте и ограничениях инструмента:
- совместимость только с одним языком. Так как это JavaScript-библиотека, она подходит только для приложений и сайтов, которые пишутся на JS. Это самый популярный для создания UI язык, но не единственный — при выборе другого варианта React использовать не получится;
- специфический синтаксис. При разработке на Реакте используется JSX — расширение JavaScript. Это расширение визуально напоминает синтез JS и HTML, поэтому может казаться запутанным и сложным для освоения. То есть, программисту нужно сначала освоить использование JSX, чтобы использовать React эффективно;
- React — это фронтенд-инструмент. То есть, на Реакте создается только UI, пользовательский интерфейс приложения. Для создания приложения понадобится подбирать стек, включая фреймворк и инструменты для работы с бэкендом;
- частые обновления библиотеки. Разработчики React постоянно работают над его усовершенствованием и исправлением ошибок. Поэтому обновления выходят часто, и некоторые из них меняют паттерны разработки в Реакте. Для того, чтобы созданные с его помощью приложения работали корректно, нужно следить за обновлениями библиотеки и при необходимости вносить изменения в приложения;
- сложности оптимизации для поисковиков. Поисковые системы лучше всего индексируют объекты HTML. Так как при использовании React компоненты пишутся на JavaScript, они обрабатываются медленнее. Какие-то данные могут оказаться совсем недоступными для поисковых роботов — тогда постадает SEO сайта, и он может оказаться ниже в выдаче.
Почему мы выбираем React для профессиональной разработки
React и его расширения, такие как React Native, могут дополнить практически любой стек технологий для веб-разработки. Этот инструмент можно использовать как при создании приложения или сайта с нуля, так и при его доработке для добавления новых функций. Поэтому мы создаем пользовательские интерфейсы приложений на Реакте — он обеспечивает производительность и удобство за счет нескольких свойств.
- Гибкость библиотеки увеличивает производительность приложения. На скорость работы приложения влияет количество кода, который отправляется браузеру: чем кода больше, тем приложение медленнее. В отличие от других инструментов, React при правильном использовании сокращает количество лишнего кода. Поэтому приложения на React более производительные, чем, например, на чистом JavaScript.
- Жесткая разметка, группировка по компонентам и тестирование корректности рендеринга упрощают поддержку кода. Особенности разработки на React Native позволяют создавать код, в котором можно быстро найти баги и устранять их. Этому способствует иерархия компонентов и нисходящий поток данных. А после обнаружения ошибки разработчик может внести исправления в определенную часть кода приложения, а не везде.
- Предохранители защищают от поломки интерфейса для пользователей. Если при обновлении приложения поломается какая-то функция, интерфейс для пользователей не изменится. Это возможно благодаря предохранителям. Оборачивать в предохранители можно каждую функцию, которая несет риск поломки, — это поможет избежать каскада ошибок. Поэтому React подходит для разработки сложных клиентских приложений: даже если проект сложный и комплексный, он будет работать стабильно.
Какие задачи решаем с помощью React
Мы пишем на React административные панели для управления разными сервисами. Административные панели часто бывают в личных кабинетах — это кнопки с разными функциями. С их помощью можно анализировать и выводить статистику, управлять подпиской, выбирать способ оплаты. Их интерфейс может отличаться внешне и по доступным опциям.
Разделяем доступные функции на уровни доступа в административной панели. В некоторых сервисах доступные опции нужно разделять по уровням доступа для разных сотрудников. Например, владелец компании может увидеть всю актуальную информацию о деньгах на счете в личном кабинете банка: общую сумму, реестр операций. А главный бухгалтер — только реквизиты контрагентов и даты операций для оформления документов в налоговую.
У компании один личный кабинет в банке, но система распознает, кто в нее зашел и выводит нужный интерфейс. React позволяет сократить время на создание логики с несколькими интерфейсами благодаря изолированным компонентам. На их написание нужно немного кода.

В зависимости от того, какой ответ видит система — она выводит нужный интерфейс.
Создаем необходимые опции для анализа работы приложения и вывода статистики. Для некоторых систем необходима функция вывода статистики. Например, владелец интернет-магазина хочет оценить, как много продаж с оплатой банковскими картами он сделал в этом месяце. Ему удобно зайти в систему учета, задать фильтры «банковские карты» и промежуток с 1 по 30 число и нажать кнопку «Посмотреть».
На Реакте можно создать любую систему фильтрации, он позволяет визуализировать любые сложные диаграммы и графики. Можно настроить систему так, чтобы она автоматически обновлялась каждые два часа — так интернет-магазин сможет в режиме реального времени отслеживать продажи.

React позволяет обновлять информацию о работе системы в режиме реального времени
Оптимизируем управление подписками пользователей. Некоторые сервисы зарабатывают на подписках. Например, сервис по доставке готовой еды каждый четверг списывает деньги с карты клиента за заказ на следующую неделю.
Иногда клиент хочет отменить подписку — он ищет кнопку в личном кабинете. Здесь в логику интерфейса можно встроить хитрость, чтобы не терять подписчика — можно предложить ему поставить подписку на паузу, а не отменять ее совсем. С помощью React легко настроить такой функционал.

