Почему мы используем Vue фреймворк, а не React или AngularJS?

31 Августа 2017

Vue.js – это молодой фреймворк, который был создан в 2014 году, вторая версия вышла в 2016 году.

Некоторые разработчики называют его библиотекой за малый размер и простоту использования.

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

Преимущества использования Vue:

  • Laravel официально поддерживает и рекомендует использовать Vue фреймворк (произносится как вью). И мы, как разработчики на Ларавель следуем рекомендациям и также используем Vue.
  • Laravel прямо из коробки поставляется уже с Vue.js.
  • Почему Laravel рекомендует Vue? Наверное у них схожая философия – простота, элегантность, доступность.
  • Vue легче в использовании и сопровождении, чем React или AngularJS, что уменьшает время на разработку и поддержку проекта. Любой разработчик сможет легко разобраться и писать на Vue, чего не скажешь про React или Angular, где без понимания тонкостей и достаточного опыта в данных фреймворках не получится писать качественный код. В итоге разрабатывая на Vue мы экономим время на разработку, а это деньги клиента. И экономим время на сопровождение и исправление возможных багов.
  • Еще один немаловажный фактор – документация. Во Vue самая лучшая, самая полная по сравнению с другими фреймворками документация, с изобилием примеров, что делает изучение и написание кода легким и увлекательным занятием (где-то, как на Laravel).

Сравнительная таблица размеров фреймворков Gzipped версии:

Фреймворк Размер
Ember 2.2.0 111K
Ember 1.13.8 123K
Angular 2 111K
Angular 2 + Rx 143K
Angular 1.4.5 51K
React 0.14.5 + React DOM 40K
React 0.14.5 + React DOM + Redux 42K
React 15.3.0 + React DOM 43K
Vue 2.4.2 20.9K
Inferno 1.2.2 20K
Preact 7.2.0 4kb

 

Проанализировав таблицу выше можно сказать, что Vue в 2 раза легче, чем React и в 7 раз легче, чем Angular 2.

Основные отличия Vue от React:

  • React и Vue похожи. Они оба используют Virtual DOM, предоставляют реактивность и компонентную структуру (работают с данными, а не с DOM, как в jQuery), фокусируются на корневой библиотеке, вынося прочие вопросы, такие как роутинг или управление глобальным состоянием приложения, в дополнительные библиотеки (Vue-router, Vuex).
  • Для написания на React нужно иметь опыт в написании JSX и ES2015+, а для Vue это не обязательно.
  • Vue слегка быстрее из-за более легковесной реализации Virtual DOM. Сравнение скорости можно посмотреть по ссылке: https://rawgit.com/krausest/js-framework-benchmark/master/webdriver-ts/table.html
  • В React абсолютно всё – это JavaScript. Не только структуры HTML, выраженные через JSX, а также включающие управление CSS внутри JavaScript. Vue же основывается на классических веб-технологиях, что облегчает менее опытным разработчикам и даже дизайнерам вносить правки в код.
  • Масштабирование вверх. Для крупных приложений, как Vue так и React предоставляют роутинг и управление состоянием. Для последнего в Vue есть Vuex, аналог Redux в React.
  • Масштабирование вниз. Порог входа в React довольно крут. До того момента, когда новичок сможет что-то написать, ему придётся узнать о JSX, а вероятно и о ES2015+, поскольку многие примеры используют синтаксис ES2015 классов. Кроме того придётся разобраться с системами сборки. В Vue все на много проще, можно использовать даже вместе с jQuery. Для того чтобы начать писать на Vue в простом варианте можно просто подключить скрипт: и с этого момента уже писать код на Vue.
  • React был создан фейсбуком для себя, для своих нужд. В наших реалиях мы не разрабатываем сайты уровня фейсбука и всю мощь React не используем. А на небольших сайтах или в точечных его использование замедляет разработку.

Отличия Vue от AngularJS:

  • Некоторые части синтаксиса Vue выглядят очень похоже на синтаксис AngularJS, но Vue значительно проще, как в смысле API, так и в смысле архитектуры. Получение достаточных знаний для написания нетривиальных приложений обычно происходит менее чем за день, чего нельзя сказать об Angular.
  • AngularJS имеет жёсткое мнение насчёт структуры вашего приложения, в то время как Vue проявляет гибкость и является более модульным решением.
  • Vue производительнее, чем AngularJS. Кроме того, из-за отсутствия dirty-checking, оптимизировать Vue-приложения намного проще. AngularJS замедляется при увеличении количества наблюдателей, поскольку каждый раз при изменении чего-либо в области видимости все эти наблюдатели должны быть перезапущены.
  • Кривая обучения у Angular гораздо круче. API фреймворка просто огромное и пользователю нужно будет разобраться с большим количеством концепций, прежде чем стать продуктивным. Очевидно, что сложность Angular во многом обусловлена его направленностью только на большие, комплексные приложения, но это делает платформу намного более трудной для менее опытных разработчиков.

Минусы Vue

Из минусов Vue я бы выделил два:

  • Молодость. Сообщество React пока больше, много есть написаных компонентов и много готового кода, который можно использовать. Angular зарекомендовал себя как многолетнее стабильное решение для больших коорпораций, чем Vue пока похвастать не может.
  • React разработал и поддерживает Facebook. Angular – Google. А Vue какой-то китаец :) – Evan You.

Дополнительные ссылки:

Ссылки для обучения:


Статью подготовил PHP-разработчик диджитал агентства VIS-A-VIS – Артур Щаблевский.

Понравилась статья? – Поделитесь ссылкой::