Чому ми використовуємо 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.
Додаткові посилання:
- https://habrahabr.ru/post/333004/
- https://geektimes.ru/company/banderolka/blog/284094/
- https://frameworksdays.com/event/js- frameworks-day-2017/review/vue-js
Посилання для навчання:
- https://laracasts.com/series/learning-vue-step- by-step
- https://laracasts.com/series/learn-vue- 2-step-by-step
- https://vuejs.org/
- https://ua.vuejs.org/
Статтю підготував PHP-розробник діджитал агентства VIS-A-VIS – Артур Щаблевський.
Сподобалася стаття ? - Поділіться посиланням ::