Популярность интерфейсных фреймворков с каждым годом растет. И в настоящее время сложно представить процесс фронтенд-разработки без каких-либо JavaScript-фреймворков. С недавнего времени возникло жесткое противостояние между двумя основными игроками: Angular, выпущенным Google, и React.js от Facebook. Однако в 2018 году в мире фронтенда произошли существенные изменения, поскольку к соревнованию присоединился еще один сильный игрок - Vue.js.

Поскольку мы уже обсуждали Angular и React в нашей предыдущей статье, давайте взглянем на Vue.js и оценим его шансы занять место одного из гигантов фронтенда - React.

Фон

Прежде чем мы начнем копать глубже, давайте кратко изложим некоторую общую информацию о двух фреймворках.

Разработанный и поддерживаемый технологическим гигантом Facebook для удовлетворения своих потребностей, React долгое время был крупным игроком на арене пользовательского интерфейса, гарантируя стабильность и долгосрочную поддержку.

Vue.js был создан бывшим сотрудником Google Эваном Ю, целью которого было разработать фреймворк, который объединял бы лучшие функции из уже существующих фреймворков.

Основные различия

Чтобы оставаться беспристрастным, я бы посоветовал начать изучать различия между React и Vue.js в документации Vue.js (что неплохо и неплохо затрагивает тему). Его написал Эван Ю в сотрудничестве с Дэном Абрамовым (из команды React).

И Vue, и React используют виртуальную модель DOM (хотя каждая из них имеет разную реализацию).

Основное различие между Vue.js и React заключается в том, что Vue.js использует шаблоны с декларативным рендерингом, в то время как React использует JSX, который в значительной степени является расширением JS, позволяющим использовать в нем HTML. Это означает, что React требует более сложные реализации даже для простых задач (по сравнению с Vue.js или даже Angular), в самом конце нужно больше времени для разработки сложного компонента.

Вот простой пример реализации входа для Vue:

То же самое и с React:

В то же время Vue.js является более высокоуровневым и имеет гораздо более низкую точку входа, поскольку Vue.js не требует глубокого понимания JS Core для работы.

И React, и Vue.js подходят для малых и средних проектов.

Популярность

React был лидером по популярности среди фреймворков JavaScript. Он занимает первое место с 48 718 иждивенцами, тогда как Vue.js является вторым по популярности фреймворком JavaScript с вдвое меньшим количеством иждивенцев - 21 575, как сообщает Node Package Manager. Хотя, если мы посмотрим на статистику на конец 2018 года, мы увидим, что количество иждивенцев Vue увеличилось втрое, а количество React - вдвое.

Количество скачиваний также показывает возрастающую популярность React, в то время как Vue практически не меняет позиций.

Stack Overflow предоставляет следующие данные на основе количества вопросов, заданных разработчиками, которые в настоящее время работают на конкретной платформе:

Хотя мы видим, что количество вопросов о Vue.js растет, несомненно, что React по-прежнему занимает первое место на подиуме.

Согласно четвертому изданию JavaScript Rising Stars, в котором оценивается количество звезд, добавляемых на Github в течение каждого года, Vue занял первое место в 2019 году.

Эта статистика сбивает с толку, так как не соответствует ни одному из вышеупомянутых цифр. Возможно, сообщество Vue просто одержимо звездами GitHub.

Поддержка сообщества

Опираясь на статистику Github, мы можем сделать вывод о том, насколько популярен Vue.js среди его сообщества с открытым исходным кодом, даже без поддержки со стороны компании верхнего уровня.

Инженеры Facebook постоянно работают над поддержкой и кодированием React, улучшая его и инвестируя в него, что делает React самым быстрорастущим инструментом в мире разработчиков.

Гибкость и кривая обучения

Одно из самых больших преимуществ React - гибкость. Поскольку React - это не полноценный фреймворк, а библиотека, его также довольно легко изучить. Вместо того, чтобы работать по установленному шаблону, разработчик может добавить любую библиотеку в соответствии со своими предпочтениями. MobX и Redux также широко используются разработчиками при работе с React для поддержки задач управления состоянием.

Vue.js также гибок и не имеет ограничений по созданию вашего приложения. Также он предлагает официальную поддержку множества систем сборки, к тому же процесс обучения не займет много времени: знакомство с такими основами, как HTML и ES5 JavaScript, - единственное, что вам нужно для начала.

Размер каркаса

Размер фреймворка является решающим критерием, который напрямую влияет на продуктивность проектов. Чем меньше фреймворк, тем лучше для проекта. Если округлить размер фреймворков, React составляет около 100 Кбайт, тогда как Vue.js - около 80 Кбайт. Оба они имеют относительно небольшой размер, что делает их удобными для разработки небольших приложений.

Случаи применения

При выборе технологии для проекта также важно знать, где эта технология уже использовалась.

Разработка приложений на React.js:

  • Facebook
  • Твиттер
  • Instagram
  • WhatsApp

Разработка приложений на Vue.js:

  • Gitlab
  • 9Gag
  • Nintendo
  • Грамматика

Подводя итог, React в настоящее время более популярен, чем Vue. У него есть сильный и влиятельный наставник, который улучшает и поддерживает его, в то время как у Vue нет. Vue.js и React.js обеспечивают высокую гибкость, простоту обучения, и оба имеют небольшой размер.

Итак, собирается ли Vue захватить React? Не в 2020 году, но не стесняйтесь пинговать inVerita, если вам сложно решить, что лучше для вашего продукта.

Первоначально опубликовано на Inveritasoft.com.