Angular vs React vs Vue. Что выбрать в 2019?
Coding
Примерно год назад разработчики в основном обсуждали, следует ли им использовать Angular или React для своих проектов. Но в течение 2018 года мы увидели рост интереса к третьему игроку под названием Vue.js.
В преддверии 2019 года этот пост представляет собой исчерпывающее руководство, которое, возможно, поможет выбрать для вас правильным решением: Angular против React против Vue.
Если вы являетесь разработчиком, начинающим проектом, и не можете решить, какой фраемворк JavaScript использовать, это руководство должно помочь вам принять решение. Мы рассмотрим различные аспекты Angular, Vue и React, чтобы увидеть, насколько они соответствуют вашим потребностям.
Этот пост является не просто руководством по Angular против React против Vue, но и призван предоставить структуру, которая поможет судить о базовых JavaScript-фреймворках в целом. Если в следующем году появится новый фреймворк, вы будете точно знать, на какие параметры смотреть!
* В этом посте мы предполагаем, что у вас есть базовые знания JavaScript и вы также использовали JavaScript-фреймворки.
Краткая история Vue против React против Angular
Прежде чем мы углубимся в технические детали, давайте сначала поговорим об истории этих структур - просто чтобы лучше оценить их философию и их эволюцию с течением времени.
Как все начиналось
Angular, разработанный Google, был впервые выпущен в 2010 году, что делает его старейшим из всех. Он TypeScript(что это?) основан на JavaScript-фреймворк.
Существенный сдвиг произошел в 2016 году в связи с выпуском Angular 2 (и отказ от «JS» от первоначального названия - AngularJS). Angular 2+ известен как просто Angular.
Хотя AngularJS (версия 1) все еще получает обновления, мы сосредоточим обсуждение на Angular. Последней стабильной версией является Angular 7, выпущенная в октябре 2018 года.
Vue, также известный как Vue.js, является самым молодым членом группы.
Он был разработан бывшим сотрудником Google Эван Ю(англ. Evan You) в 2014 году.
За последние два года популярность Vue значительно изменилась, хотя она не имеет поддержки крупной компании. Текущая стабильная версия - 2.17, выпущенная в августе 2018 года. Авторы Vue поддерживаются Patreon.
Vue 3, в настоящее время на стадии создания прототипа, планирует перейти на TypeScript.
React, разработанный Facebook, был первоначально выпущен в 2013 году. Facebook широко использует React в своих продуктах (Facebook, Instagram и WhatsApp).
Текущая стабильная версия в 16.X, выпущенная в ноябре 2018 года.

Лицензия
Прежде чем использовать среду с открытым исходным кодом, обязательно ознакомьтесь с ее лицензией. Интересно, что все три платформы используют лицензию MIT, которая предусматривает ограничения на повторное использование даже в проприетарном программном обеспечении.
Популярность
Поскольку «angular» и «react» являются общими словами, их популярность трудно понять из Google Trends.
Тем не менее, хорошим показателем их популярности является количество звезд, которые получают их репозитории GitHub.

Давайте посмотрим, как выглядит рынок вакансий для Angular vs React vs Vue, что также является хорошим показателем популярности:
Рынок труда для Angular против React против Vue
Лучшими источниками данных, которые показывают тенденции на рынке труда, являются различные доски объявлений о работе.

Как видно из тенденций конца 2018 года, количество заданий, требующих набора навыков Angular или React, примерно одинаково,в то время как у Vue это только часть этого числа (около 20%).
Этот список определенно не является исчерпывающим, но дает хорошее представление о всей индустрии высоких технологий.
Если вы смотрите строго с точки зрения текущего рынка труда, вам лучше всего изучить Angular или React.
Однако, учитывая, что Vue приобрел популярность за последние два года, может потребоваться некоторое время для того, чтобы проекты, использующие Vue, или новые проекты, использующие Vue, достигли уровня зрелости, которым командует большее число разработчиков.
Сообщество и развитие
Теперь, когда вы знакомы с историей и тенденциями каждой из этих платформ, мы посмотрим на сообщество, чтобы оценить развитие этих платформ.
Мы уже видели, что для всех платформ за последние четыре месяца был выпущен основной выпуск, что указывает на то, что разработка идет полным ходом.
Давайте посмотрим на Angular против React против Vue в отношении статистики их репозиториев GitHub:

Vue имеет огромное количество наблюдателей и звезд. Это показывает его популярность среди пользователей и его ценность при сравнении Vue против React.
Тем не менее, количество коммитов и участников Vue меньше, чем Angular и React.
Одно из возможных объяснений состоит в том, что Vue полностью управляется сообществом открытого исходного кода, в то время как Angular и React имеют значительную долю сотрудников Google и Facebook, вносящих свой вклад в репозитории.
Исходя из статистики, все три проекта демонстрируют значительную активность в разработке, и это, безусловно, будет продолжаться в будущем - только эти статистические данные не могут быть основой для отказа принять решение об использовании любого из них.
Миграции
Поскольку вы работаете с выбранным фреймворком, вам не нужно беспокоиться об обновлении фреймворка, которое испортит ваш код.
Хотя в большинстве случаев вы не столкнетесь со многими проблемами от одной версии к другой, важно держать руку на пульсе, потому что некоторые обновления могут быть более значительными и требуют настройки для обеспечения совместимости.
Angular планирует серьезные обновления каждые шесть месяцев. Кроме того, существует еще шесть месяцев, прежде чем любые основные API устаревают, что дает вам время двух циклов выпуска (один год) для внесения необходимых изменений, если таковые имеются.
Когда дело доходит до Angular vs React, Facebook заявляет, что стабильность имеет для них первостепенное значение, поскольку такие крупные компании, как Twitter и Airbnb, используют React.
Обновления до версий, как правило, являются самыми простыми в React, с помощью таких сценариев, как реагирующий код, помогающий вам перейти на новую версию.
В разделе часто задаваемых вопросов по миграции Vue упоминает, что 90% API-интерфейсов одинаковы, если вы переходите с 1.x на 2. Существует инструмент помощника по миграции, который работает на консоли для оценки состояния вашего приложения.
Работа с Vue против Angular против React
Здесь есть несколько важных характеристик, главными из которых являются общий размер и время загрузки, доступные компоненты и обучение.
Размер и время загрузки
Размеры библиотек следующие:
- Angular: 500+ KB
- React: 100 KB
- Vue: 80 KB
Несмотря на существенную разницу между размерами фреймворков, они все еще невелики по сравнению со средним размером веб-страницы (2+ МБ в 2018 году).
Кроме того, если вы используете популярный CDN для загрузки этих библиотек, весьма вероятно, что у пользователя уже есть библиотека, загруженная в его локальной системе.
Компоненты
Компоненты являются неотъемлемой частью всех трех структур, независимо от того, говорим ли мы Vue, React или Angular.
Компонент обычно получает входные данные и изменяет поведение на его основе. Это изменение поведения обычно проявляется как изменение пользовательского интерфейса какой-либо части страницы.
Использование компонентов облегчает повторное использование кода. Компонентом может быть корзина на сайте электронной коммерции или поле входа в систему в социальной сети.
Angular:
В Angular компоненты называются директивами. Директивы - это просто маркеры на элементах DOM(что это?) , которые Angular также может отслеживать и привязывать к определенному поведению. Поэтому Angular разделяет часть компонентов пользовательского интерфейса как атрибуты тегов HTML и их поведение в форме кода JavaScript, это то, что выделяет его при рассмотрении Angular и React.
React:
React, что интересно, сочетает в себе интерфейс и поведение компонентов. Например, вот код для создания компонента hello world в React.
В React та же часть кода отвечает за создание элемента пользовательского интерфейса и определение его поведения.
Vue:
В Vue пользовательский интерфейс и поведение также являются частью компонентов, что делает вещи более интуитивно понятными при взгляде на Vue vs React. Кроме того, Vue обладает широкими возможностями настройки, что позволяет комбинировать пользовательский интерфейс и поведение компонентов в скрипте. Кроме того, вы также можете использовать препроцессоры в Vue, а не в CSS, что является отличным функционалом.
Vue прекрасно подходит для интеграции с другими библиотеками, такими как Bootstrap.
Чтобы сравнить, как одно и то же приложение выглядит в разных библиотеках, приведу отличную статью о создании одного и того же списка приложений в React и Vue и о различии двух структур.
Изучение
Итак, насколько сложно изучить каждый из этих фраемворк?
Angular имеет крутое обучение, считая, что это полное решение, а для освоения Angular необходимо изучить связанные понятия, такие как TypeScript и MVC.
Несмотря на то, что для изучения Angular требуется время, инвестиции приносят дивиденды с точки зрения понимания того, как работает интерфейс.
React предлагает руководство по началу работы, которое должно помочь настроить React примерно через час.
Документация является полной , с решениями общих проблем, уже присутствующих в StackOverflow.
React не является полной структурой, а расширенные возможности требуют использования сторонних библиотек. Это делает обучения базовой структуры не такой крутой, но зависит от пути, который вы выбираете с дополнительными функциями. Однако изучение использования React не обязательно означает, что вы используете лучшие практики.
Vue обеспечивает большую настраиваемость и, следовательно, его легче освоить, чем Angular или React. Кроме того, Vue частично совпадает с Angular и React в отношении их функциональных возможностей, таких как использование компонентов. Следовательно, переход на Vue из любого из двух вариантов является простым вариантом. Тем не менее, простота и гибкость Vue - это обоюдоострый меч - он допускает плохой код, затрудняя отладку и тестирование.
Angular против React против Vue: Кто победит?
В конце этого поста давайте вспомним характерные особенности каждого фреймворка, чтобы попытаться ответить на вопрос: Angular vs React vs Vue: какой из них выбрать?
Angular является самым зрелым из фреймворков, имеет хорошую поддержку с точки зрения участников и представляет собой полный пакет.
Тем не менее, обучение крутая, и концепции развития в Angular могут оттолкнуть новых разработчиков.
Angular - хороший выбор для компаний с большими командами и разработчиков, которые уже используют TypeScript.
React достаточно взрослый, чтобы стать зрелым, и имеет огромное количество вклада сообщества. Это получает широкое признание. Рынок труда для React действительно хорош, и будущее для этой платформы выглядит блестящим.
React выглядит хорошим выбором для тех, кто только начинает работать с интерфейсами JavaScript, стартапами и разработчиками, которым нравится некоторая гибкость. Возможность бесшовной интеграции с другими фреймворками дает большое преимущество для тех, кому нужна гибкость в коде.
Vue является новинкой на арене, без поддержки крупной компании.
Тем не менее, в последние несколько лет он добился больших успехов, выступая сильным конкурентом Angular и React. Возможно, это играет роль в том, что многие китайские гиганты, такие как Alibaba и Baidu, выбирают Vue в качестве основного интерфейса JavaScript.
Тем не менее, еще предстоит увидеть, как это произойдет в будущем, и оправданно быть осторожным с этим. Vue должен быть вашим выбором, если вы предпочитаете простоту, но также и гибкость.
Ответ на дебаты Angular против React против Vue заключается в том, что не существует абсолютно правильного выбора, который вы, вероятно, ожидали.
Каждая из этих библиотек имеет свои преимущества и недостатки. Исходя из проекта, над которым вы работаете, и ваших индивидуальных требований, одно из них будет более подходящим, чем другие.
Прежде чем принимать решение, всегда важно провести собственное исследование, особенно если вы собираетесь работать над бизнесом, а не над личным проектом.