Сравнение — неизбежная часть создания новых вещей. Мак против ПК. Android против iOS; ничего святого. Поэтому, естественно, когда Vue был выпущен, разработчики со всего мира должны были высказать свое мнение. Наиболее очевидное сравнение связано с одним из крупнейших конкурентов Vue в плане фреймворков: React. Vue действительно имеет некоторые сходства с React, но также имеет немало различий. Далее следует сравнение и противопоставление Vue и React.

Vue.js по сравнению с Vue.js. Реагировать

Сходства

а) Виртуализация DOM

Одной из замечательных особенностей обеих платформ является то, что ни одна из них фактически не затрагивает объектную модель документа (DOM); этого можно избежать за счет использования виртуального DOM (абстракции DOM). Но зачем использовать виртуальный DOM? Отличный вопрос! Постоянное обновление DOM — не лучшее использование вычислительных ресурсов. Только прикосновение к виртуализации DOM для обновления объектов JavaScript намного легче и проще для системы с точки зрения использования ресурсов.

б) Компоненты

Обе платформы также реализуют архитектуру на основе компонентов. Здание состоит из стен, полов, дверей, окон, крыши и различных других объектов. Различные объекты, составляющие общую структуру, можно считать ее компонентами. Например, в таком приложении, как Instagram, лайки фотографии, посещение страницы вашей учетной записи и изменение вида фотографии будут считаться компонентами; все они являются отдельными, но вносят свой вклад в приложение в целом.

c) Сопутствующие платформы/библиотеки

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

Различия

а) Шаблоны и JSX (JavaScript XML)

Vue использует шаблоны. React использует JSX. Это не совсем яблоки и апельсины, но между ними есть большая разница.

Шаблоны состоят из старого доброго HTML. Это отлично подходит для разработчиков, которым удобно использовать язык разметки и которые предпочитают использовать настраиваемые атрибуты для элементов. Прелесть Vue и шаблонов в том, что комбинировать шаблоны Vue с существующими шаблонами относительно просто. Поскольку Vue использует HTML для рендеринга, синтаксис знаком, а интеграция шаблонов в систему проще. Vue предлагает использование JSX, но по умолчанию использует шаблоны.

JSX позволяет использовать JavaScript в шаблоне. Это дает разработчику достаточно возможностей при создании представления. Это может показаться более пугающим, чем шаблоны, но, как и все остальное, как только комфорт установлен, это действительно не так уж плохо. Большое отличие от использования шаблонов заключается в том, что код шаблона написан с помощью JavaScript через JSX.

б) Государственное управление

Это в основном Vuex против Redux. Являются ли обе библиотеки управления состоянием? да. Однако большая разница между ними сводится к неизменности. По словам Джона Ханны, Redux управляет состоянием, объявляя состояние неизменным, а затем заменяя его с помощью функций редьюсера. Это повышает предсказуемость состояния. Vuex позволяет изменять состояние, а не замену состояния, как в Redux. С помощью модулей Vuex может организовать логику состояния. Это позволяет библиотеке избежать ненужного разрушения логики.

Одна популярная библиотека управления состоянием, MobX, для React очень похожа на Vue с точки зрения изменчивости. Это золотая середина для разработчиков, которым нужен более гибкий метод управления состоянием, но оставаться в рамках React.

Когда я использую Vue? Реагировать?

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

Vue отлично подходит для небольших проектов благодаря поэтапной реализации. Просто добавляйте компоненты, когда они вам нужны; нет необходимости в ненужных, неиспользуемых ресурсах. Это помогает снизить нагрузку на систему и сократить время ожидания в приложении. Vue также очень легко освоить и быстро освоить. В Vue предварительно сконструированная привязка данных и архитектурный шаблон Модель-Представление-Контроллер позволяют любому легко пройти первоначальную настройку. Меньше настройки = больше проекта! К сожалению, сообщество разработчиков Vue намного меньше по сравнению с React. Это просто из-за популярности React. Включение в несколько крупных приложений творит чудеса с охватом библиотеки JavaScript. Что касается предпочтений, то разработчики, которым удобнее использовать шаблоны, а не JSX, могут быть неравнодушны к Vue.

Настройка React требует немного больше времени, чем Vue. Однако после первоначальной настройки создание проекта ничего не значит. В отличие от Vue, у React более крутая кривая обучения. Поскольку это более крупная библиотека, вам придется большему научиться (JSX, ES2015+). React имеет гораздо более широкое сообщество с точки зрения разработки. Из-за этого существует гораздо больше ресурсов, доступных для просмотра и заимствования при создании проекта. Использование для создания таких приложений, как Discord, AirBnB и Instagram, также помогло библиотеке JavaScript завоевать популярность в отрасли. В отличие от Vue, разработчиков, предпочитающих JSX шаблонам, можно убедить выбрать React. Это действительно сводится к уровню комфорта и готовности учиться новому.

Несмотря на то, что у Vue есть пути для того, чтобы догнать React по популярности (см. рис. 3), он продолжает зарекомендовать себя как отличный вариант для создания одностраничных приложений. Судя по его постоянному росту, будущее Vue очень светлое.