Научная статья на тему 'ТЕХНОЛОГИЯ РАЗРАБОТКИ ИЗОМОРФНОГО REACT ПРИЛОЖЕНИЯ'

ТЕХНОЛОГИЯ РАЗРАБОТКИ ИЗОМОРФНОГО REACT ПРИЛОЖЕНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
194
17
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
REACT ПРИЛОЖЕНИЕ / ИЗОМОРФНОЕ ПРИЛОЖЕНИЕ / УНИВЕРСАЛЬНОЕ ПРИЛОЖЕНИЕ / СЕРВЕРНЫЙ РЕНДЕРИНГ / SPA

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мамбетов Р.А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

TECHNOLOGY OF DEVELOPING ISOMORPHIC REACT APPLICATIONS

The features of the development of isomorphic applications using the React library are given. Considered and carried out a comparative analysis of existing server rendering. In particular, the need for use, its advantages and disadvantages are considered.

Текст научной работы на тему «ТЕХНОЛОГИЯ РАЗРАБОТКИ ИЗОМОРФНОГО REACT ПРИЛОЖЕНИЯ»

УДК 004.42

Мамбетов Р.А. студент 2 курса факультет «Прикладная информатика» Крымский инженерно-педагогический университет научный руководитель: Москалева Ю.П., к.ф.-м.н.

доцент

Россия, г. Симферополь ТЕХНОЛОГИЯ РАЗРАБОТКИ ИЗОМОРФНОГО REACT

ПРИЛОЖЕНИЯ

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

Ключевые слова: react приложение, изоморфное приложение, универсальное приложение, серверный рендеринг, SPA.

Mambetov R.A. - 2nd year student, Faculty of Applied Informatics Crimean Engineering and Pedagogical University

Russia, Simferopol Scientific adviser: Moscaleva Y.P.

senior teacher

TECHNOLOGY OF DEVELOPING ISOMORPHIC REACT APPLICATIONS

Annotation. The features of the development of isomorphic applications using the React library are given. Considered and carried out a comparative analysis of existing server rendering. In particular, the need for use, its advantages and disadvantages are considered.

Постановка проблемы. В настоящее время сложно представить человека, который не пользовался бы интернетом. Каждый день мы посещаем различные веб сайты. Одним из главных требований к веб сайту является скорость загрузки (независимо от скорости Интернет-соединения). В этом нам помогут изоморфные приложения. Изоморфное (так же встречается универсальное) приложение предполагает, что JavaScript код приложения может выполнен как на серверной части, так и на клиентской. С помощью этого механизма пользователь получает доступ к контенту гораздо быстрее, так как даже несколько секунд ожидания в наше время может быть критично.

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

страниц [1]. С развитием технологий все серверные операции стали выполняться на лету, а страницы сайта в веб-браузере стали обновляться мгновенно. В популярность вошли одностраничные приложения, состоящие из одной HTML-страницы-оболочки с динамически подгружаемым контентом. Отличным примером одностраничного приложения может быть Gmail или страницы соц.сетей, где переключение между вкладками происходит практически моментально, без перезагрузки страницы.

Как и любой другой сайт, одностраничное приложение состоит из серверной и клиентской части. Клиентская часть пишется на JavaScript, серверная — на PHP, Node.js, Python, Java или другом подходящем серверном языке. Вся логика одностраничных приложений (представления, шаблоны, контроллеры, модели, и пр.) находится на стороне клиента, и когда пользователь загружает сайт — он видит клиентскую часть приложения. При переходе на другую вкладку или страницу клиентская часть обращается к серверу через API, сервер отдает данные и пользователь видит отрисовавшуюся новую часть HTML страницы [2].

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

Цель исследования - описать и проанализировать технологию разработки изоморфного react приложения с выделением его основных преимуществ и недостатков.

Изложение основного материала. В современных условиях развития ИТ-технологий преимущества использования изоморфных приложений как для пользователя, так и для разработчика неоспоримы. Ведь на заре появления веб-технологий типичный сайт выглядел как набор статичных HTML-страниц и старый веб работал таким образом, что браузеру нужно было запрашивать каждую страницу сайта отдельно, заставляя сервер генерировать HTML страницы и отсылать их обратно. Поэтому каждый новый запрос на сервер сопровождался бесконечной перезагрузкой страниц. Однако позже свою популярность получили одностраничные приложения или SPA (single page application). Плюсы разработки одностраничных приложений, как в любом клиент-серверном приложении, в том, что есть разделение на клиентскую и серверную часть, которые могут разрабатываться, при необходимости, отдельными командами. А в случае, если нужно поменять интерфейс приложения, не нужно затрагивать бизнес-логику, или наоборот.

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

Однако есть у одностраничных приложений и недостатки: seo -оптимизация под поисковые системы, невысокая производительность (скорость загрузки).

Что бы адаптировать одностраничные сайты под нужды SEO и обеспечить его быструю загрузку и индексацию поисковиками, парадигма разработки сместилась в направлении изоморфного JavaScript. Изоморфный код — это код, который может выполняться и на клиентской, и на серверной стороне[3].

Что это значит в контексте одностраничных приложений?

При первом обращении к сайту все операции выполняются на сервере и в браузер передается HTML со всей информацией, как на обычных веб-сайтах со статическими страницами, которые поисковики могут проиндексировать. После загрузки JS сайт превращается в «одностраничное приложение», и работает соответственно^].

Самые наглядные изоморфные приложения — это всем известные Facebook, Instagram, Flickr, Airbnb, и др.

Для разработки изоморфных приложений применяются различные библиотеки, например, Meteor, Derby или React JS. Мы рассмотрим React JS.

Изоморфность React JS дает вам и пользователю вашего одностраничного приложения два основных преимущества:

- поисковым ботам проще просматривать и индексировать страницы

сайта;

- улучшенный user experience при взаимодействии с вашим сайтом на

React;

Изоморфное приложение на React — это одностраничное приложение, которое может рендериться на сервере (SSR). Смысл SSR (server-side-rendering) или серверного рендеринга в том, что для клиентов, которые не поддерживают или ограниченно поддерживают JavaScript (например, поисковым ботам) можно отдавать статичные файлы типа index.html, page1.html, page2.html, и т.д.

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

Когда сайт быстро загружается, улучшаются факторы пользовательского опыта: говоря простыми словами, пользователи лояльнее относятся к этому ресурсу и дольше находятся на сайте. На сегодняшний день поведенческие факторы — это одни из важнейших факторов ранжирования сайта гуглом, важнее традиционных, к примеру, таких как плотность ключевых слов[5].

Преимуществом же для разработчика является, то что React — библиотека, которая может рендерить компоненты сайта как на серверной, так и на клиентской стороне. React хорошо подходит для создания изоморфных приложений, так как позволяет переиспользовать почти весь клиентский код

для рендеринга на сервере, в зависимости от масштаба приложения. Именно эта особенность React так нравится многим разработчикам.

В неизморфных приложениях это невозможно из-за архитектуры построения. Т.к., если клиентская часть такого приложения написана на JavaScript, а бэкенд на PHP, мы не можем переиспользовать код, написанный для сервера на клиенте, и наоборот. В случае с JavaScript, клиентская часть кода часто полагается на DOM браузера, которого нет на серверной стороне. React же дает нам абстракцию браузерного DOMа в виде виртуального DOMа. Это дает два основных преимущества:

- код, который работает с виртуальным DOM в реакте не зависит от браузера и может выполняться на сервере;

- React может оптимизировать операции над документами и снизить количество обращений к браузерному DOM и за счет этого значительно ускорить работу фронтенда.

Конечно, не стоит забывать и о недостатках ведь при разработке изоморфного react приложения может возникнуть проблема с индексацией, так как не все данные хранятся в браузере, да и модель одностраничных приложений с использованием серверного рендеринга не подходит под особенности всех приложений.

Выводы. В данной статье были рассмотрены технологии разработки изоморфных react приложении их преимущества и недостатки.

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

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

Использованные источники:

1. React и SEO: преимущества изоморфности React для одностраничных приложений // Xbsoftware. - [Электронный ресурс]: URL: https://xbsoftware.ra/blog/react-seo-izomorphnost-react-odnostrannoe-prilozhenie/.

2. Demystifying server-side rendering in React // freecodecamp. - [Электронный ресурс]: URL: https://medium.freecodecamp.org/demystifying-reacts-server-side-render-de3 35d408fe4 .

3. Стефанов С.Г., React.js. Быстрый старт: Книга. - М.: O'Reilly - Питер, 2017. - 304 с.

4. React.js: собираем с нуля изоморфное / универсальное приложение. // habr -[Электронный ресурс]: URL: https://habr.com/ru/post/309958/.

5. Бэнкс А.В., Порселло Е.А., React и Redux. Функциональная веб-разработка: Книга. - М.: O'Reilly - Питер, 2018. - 336 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.