Битва титанів: Angular vs React. Що обирають у 2020 році?

Битва титанів: Angular vs React. Що обирають у 2020 році?

  • 5 квітня, 2017
  • читати 3 хв

Популярність js фреймворків все зростає. Лідируючі позиції серед фреймворків і бібліотек на базі JavaScript займають Angular і React. Спробуємо розібратися - React або Angular?

Рекомендуємо курс по темі

Популярність бібліотеки React, створеної компанією Facebook, постійно зростає, в той час як компанія Google випустила вже одинадцяту версію фреймворку Angular в листопаді 2020 року.

Щоб зробити правильний вибір, потрібно порівняти обидві технології.

Динаміка популярності пошукових запитів в Google

На графіку бачимо, що популярність технології Angular ще в 2018 році в рази перевищувала популярність його конкурента. Однак, варто зазначити, що частотність пошуку слова «Reactjs» стабільно, хоч і несуттєво зростає, тоді як Angular перестав настільки сильно цікавити користувачів.

Але пошук — не єдиний фактор для порівняння цих двох фреймворків. Можна також оцінити їх затребуваність на підставі їх популярності серед практикуючих програмістів.

Джерело: https://insights.stackoverflow.com/survey/2020#most-popular-technologies
Загальні відомості про Angular і React

Переваги 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
  • Google
  • HBO
  • Sony
  • General Motors

Повний перелік компаній можна знайти тут:

https://www.madewithangular.com

Компанії, які використовують React

  • Alipay
  • Airbnb
  • Dropbox
  • Facebook
  • Netflix
  • Reddit

Висновок

Як React, так і Angular — прекрасні технології, що забезпечують масу можливостей при розробці. Angular прекрасно справляється з декларативними рішеннями, хоча йому не вистачає волі і простоти бібліотеки React.

Angular на ринку з 2010 року, на відміну від React, який вийшов у 2013 році, тому можна однозначно стверджувати, що підприємницькі кола Angular набагато більше.

Універсального рішення немає — обирайте те, що найбільше відповідає вашим вимогам у довгостроковій перспективі.

За матеріалами techmagic.co