ReactJS – это расширение функций браузерного ява-скрипт(js), представляемое в виде библиотеки, предназначенное для разработки многократно использующихся UI компонентов. Согласно технической документации данной библиотеки – это набор функций и компонентов, служащих для создания пользовательского интерфейса. Он позволяет создавать многократно используемые компоненты, представляющие динамические данные, то есть те, которые могут неоднократно меняться в ходе выполнения приложения (app). Самый наглядный пример, демонстрирующий такой подход разработки – это так называемые single page application.
В них, вся работа приложения фактически происходит на одной странице, с динамической загрузкой данных, тем не менее url в адресной строке может меняться, но это не говорит о том, что вы загрузили новую страницу, в данном случае загрузилась лишь часть данных предназначенных этой странице. Для разработки таких приложений ReactJS выступает не заменимым помощником. Большинство разработчиков используют его как V(view) в MVC-шаблоне.
С точки зрения программной реализации продукта, ReactJS – это абстракция над DOM – элементами, предлагающая вам более простой и производительный способ программирования. React может так же рендерится (отображение вида) на сервере используя Node.js и на его основе можно программировать независимые приложения, дополнительно воспользовавшись расширением -React Native.
Особенности ReactJS
- JSX – это модуль расширяющий синтаксис языка JavaScript, разработанный для более удобного интегрирования HTML шаблонов в ваше приложение. Его не обязательно использовать, но желательно.
- Components (компоненты) – React-библиотека построена полностью на компонентах, и вы будете следовать данному подходу в своих приложениях, благодаря этому вы сможете более легко масштабировать код при работе над крупными проектами.
- Однонаправленная передача данных и Flux – реализует динамическое обновление данных на странице.
- Лицензия предоставляется от официального разработчика Facebook.
Преимущества ReactJS в сравнении с другими фреймворками и библиотеками.
- Использует уникальную технологию, виртуального DOM-дерева, в виде js объектов. Это значительно повышает производительные показатели приложения, из за того, что виртуальный DOM быстрее, реального.
- Может быть использован на клиентской и серверной стороне так же хорошо, как другие фреймворки.
- Компонентный подход проектирования, обеспечивает лучшую читабельность кода и простоту при поддержки масштабных проектов.
- Не смотря на специфичность библиотеки, хорошо поддерживается большинством браузеров, в том числе старых версий.
Ограничения React
- Предназначен только для представления данных, по этому вам все равно понадобятся другие технологии, что бы получить полный набор для разработки.
- Не типичный подход unit-тестирования react-компонентов, с малым количеством документации, в следствии чего может вызвать затруднения у разработчиков.