Часто заказчики задают вопрос:

"Какую технологию лучше выбрать для разработки веб-приложения?"

В этой статье мы разберемся чем React отличается от Angular, постараясь не вникать в технические дебри этих решений, а рассмотреть лишь те аспекты, которые влияют на бизнес-модель.

Время на чтение: 7 минут. 

⚡⚡⚡React – это библиотека, в то время как Angular – это фреймворк.

Для некоторых читателей стоит сделать экскурс, чем же библиотека отличается от фреймворка.

Библиотека – это готовое решение, для реализации какой-то конкретной задачи. Например, библиотека Chart.js позволяет добавить красивые диаграммы, если нам потребуется продвинутая работа с датами, то можно воспользоваться Day.js, а если нужно добавить качественные tooltip`ы, то стоит посмотреть в сторону Popper.

Фреймворк – это в свою очередь набор библиотек и инструментов, накладывающий определённый стиль программирования на разрабатываемое решение. Все компоненты фреймворка тесно связаны между собой, предлагая «ready to use» решение для реализации какой-то большой задачи.

React – это библиотека, в то время как Angular – это фреймворк.

React – это библиотека для построения пользовательского интерфейса UI (о чем разработчики прямо заявляют на своем сайте). Тем не менее, одного только React недостаточно, чтобы построить современное веб-приложение. В разработке еще понадобится библиотека для реализации: маршрутизации (React Router или wouter), продвинутой работы с формами (Formik или React Hook Form), сборки проекта (Webpack или Vite), интернетизации, если веб-приложение должно работать на нескольких языках (react-i18next или react-intl), а также SSRSSG, если требуется оптимизация SEO и первоначальной доставки контента (Next.js или Remix).

Таким образом, мы объединяем эти библиотеки вместе с React и получаем React-based фреймворк. Мы специально приводили в пример только 2 самых популярных библиотеки, на деле их гораздо больше.

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

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

Такая особенность React также может сказаться на реализации Entreprise-решений, где зачастую должны использоваться последние версии продуктов из соображений безопасности. В случае мажорного обновления React, не все используемые библиотеки сразу могут обновиться (а некоторые так и не получают обновления от создателей), для поддержки нового функционала, так что еще придется ждать, когда они добавят поддержку новой версии, либо реализовать нужную часть функционал самостоятельно.

При мажорном обновление Angular, обновляются все составляющие этого фреймворка, так что реализовывать новый функционал можно сразу и в полной мере. Но вместе с этим в React приходит альтернативный и свежий взгляд на решение проблем благодаря тому, что подобные библиотеки лежат на плечах комьюнити и opensource. Каждый желающий может написать библиотеку, которая вполне может стать одним из бедующих стандартов React-разработки. В Angular тоже есть альтернативные решения, для уже существующего функционала, но такое используют нечасто и для решения каких-то своих специфичных проблем.

Из этого пункта можно сделать вывод, что Angular предлагает нам решение «из коробки» в то время, как в React мы должны сами его собрать. Соответственно, проектируя инфраструктуру под React, разработчику необходимо учитывать не только специфику бизнеса, чтобы сделать наилучший выбор в пользу той или иной библиотеки, но также и рассчитывать популярность и поддержку этой библиотеки, дабы не оказалось такого, что ее поддержка прекратилась (мы получаем большую гибкость, но за это идем на риски). Также с Angular мы зачастую используем стандартный для всех набор, в то время как для React в каждом проекте свой стандарт, что сказывается на времени интеграции новых членов команды в проект. Но об этом речь пойдет больше в следующей части.

Если вам понравилась статья нашего эксперта, то подписывайтесь и получайте новые материалы регулярно, но не чаще одного раза в 10 дней.

Насколько интересной была статья?

Кликните на звезду, чтобы оценить статью

Средний рейтинг: 4.3 / 5. Оценок: 9

Оценок еще нет. Оцените, чтобы быть первым

Эксперт Павел Лебедев

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.

Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.