Чому ми використовуємо 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 – Артур Щаблевський.

Сподобалася стаття ? - Поділіться посиланням ::