Популярность js фреймворков все растет. Лидирующие позиции среди фреймворков и библиотек на базе JavaScript занимают Angular и React. Попробуем разобраться — реакт или ангуляр?
Рекомендуем курс по теме
Популярность библиотеки React, созданной компанией Facebook, постоянно растёт, в то время как компания Google выпустила уже одиннадцатую версию фреймворка Angular в ноябре 2020 года.
Чтобы сделать правильный выбор, нужно сравнить обе технологии.
На графике видно, что популярность технологии Angular еще в 2018 году в разы превосходила популярность его конкурента. Однако, стоит отметить, что частотность поиска слова «Reactjs» стабильно, хоть и несущественно растет, тогда как Angular перестал столь сильно интересовать пользователей.
Но частотность поиска — не единственный фактор для сравнения этих двух фреймворков. Можно также оценить их востребованность на основании их популярности среди практикующих программистов.
Преимущества Angular
Поддержка веб-компонентов
Веб-компоненты Angular основаны на новом стандарте веб-компонентов, в отличие от закрытой системы модуляризации AngularJS. На практике это значит, что AngularJS даёт возможность непосредственно использовать любой компонент, написанный как Web Component, не прибегая к коду вёрстки.
Использование Typescript
Самое большое коммерческое преимущество TypeScript состоит в его инструментарии. Этот язык даёт возможности современного автозаполнения, навигации и рефакторинга. Такие инструменты становятся практически незаменимыми при работе с большими проектами.
Отличная производительность
Angular не проводит глубокий сравнительный анализ объектов. Если какой-то элемент добавить в массив данных, изменение пути не будет обнаружено. Это касается и свойств объекта, пока они не связаны напрямую с View.
Angular CLI
CLI фреймворка Angular даёт возможность с лёгкостью создавать приложение, которое работает по умолчанию. Это соответствует лучшим современным тенденциям.
Недостатки Angular
Тяжело освоить
Если у вас нет опыта использования typescript, вам понадобится время, чтобы его освоить.
Regular DOM
Angular непосредственно использует DOM, в результате чего снижается его скорость и эффективность по сравнению с React.
Сложности при серверной шаблонизации
В Angular до сих пор осталось физическое разделение между JavaScript, запускающим приложение, и рендерингом HTML.
Преимущества React
Абсолютное разделение данных от их представления
React даёт чуть больше, чем просто представительский уровень. Несмотря на то, что компоненты React имеют концепцию «состояний» (state), они больше подходит для кратковременного хранения.
Легко начать писать
Написание кода в React очень похоже на работу в HTML, что даёт возможность без труда начать писать код, упустив синтаксис.
Привязка к DOM нас не заботит
Если за последние 5 лет вы уже писали какой-то Front-end–компонент с/без фреймворка, вы понимаете все сложности функционала элементов DOM. Несмотря на то, что React решает этот вопрос так же, он распределяется на несколько областей кода по принципу единственной ответственности.
React не является фреймворком
React – библиотека, предоставляющая декларативный метод определения компонентов UI. React DOM – это ассоциированная библиотека, которая обеспечивает рендеринг и DOM diffing. Redux – это библиотека, обеспечивающая хранение данных, а React-Redux соединяет React и Redux.
Недостатки React
React не является фреймворком
Можно много разглагольствовать, но когда дело доходит до того, что нужно что-то сделать быстро, работа с React Way может разочаровать. Знаете, когда у вас горят сроки проектов, а первая страница вашего справочника React больше не работает, а такое бывает, можно выйти из себя.
Необходимы Build tools
Использование build tools не составляет большой проблемы, обычно ими пользуются и при работе с другими языками. Единственной реальной проблемой использования их в JavaScript является то, что нет стандартных многоразовых решений для ваших проектов. Это может значительно увеличить время, которое вы потратите на то, чтобы воплотить идеи в коде.
Сообщество всё ещё формируется
Нужно решить ещё немало проблем, а сообщество React недостаточно велико, чтобы найти все решения.
Компании, которые используют Angular.JS
- PayPal
- Upwork
- The Guardian
- Nike
- HBO
- Sony
- General Motors
Компании, использующие React
- Alipay
- Airbnb
- Dropbox
- Netflix
Вывод
Как React, так и Angular – прекрасные технологии, обеспечивающие массу возможностей при разработке. Angular прекрасно справляется с декларативными решениями, хотя ему не хватает свободы и простоты библиотеки React.
Angular на рынке с 2010 года, в отличие от React, который вышел в 2013 году, поэтому можно однозначно утверждать, что сообщество Angular гораздо больше.
Универсального решения нет — выбирайте то, что больше всего соответствует вашим требованиям в долгосрочной перспективе.
По материалам techmagic.co