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

React полностью поддерживает Javascript, Vue - нет.

Это неверно по многим причинам, и как говорится в этой цитате из документации React:

Каждый элемент JSX - это просто синтаксический сахар для вызова React.createElement(component, props, ...children). Итак, все, что вы можете делать с JSX, также можно сделать с помощью простого JavaScript.

Эй, эй, что ты только что прочитал? «с простым JavaScript», что означает, что JSX - это не просто JS :)

Теперь, чтобы прояснить:

  • Vue не заставляет вас использовать шаблоны, здесь есть чистые функции рендеринга JS
  • Будь то JSX или расширенный HTML, оба они не являются чистым JS, а только синтаксическим сахаром.

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

Пользователи React: «Это просто Javascript», и это правда.

Как было показано ранее, это неверно, если вы используете JSX. Vue также может быть чистым JS с функциями рендеринга, так что это просто бросает слова в воздух.

Кажется, что в Vue много ненужной магии

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

Стоит ли напоминать об ужасной проблеме shouldComponentUpdate и «потраченном впустую» рендере React (цитата из документации React)? :)

Мне не нужен v-if, потому что у меня есть старый скучный обычный if

Опять же, это неправда, большую часть времени в React мы будем использовать не обычное if, а тройное и IMO, следующее имеет меньшую ясность, чем v-if.

- ИМО Менее ясно, чем -

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

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

Инструменты

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

В основе React и Redux лежит неизменность

Кажется, что Vue нельзя использовать с Redux, хотя можно.
Кажется, что Vuex - единственное решение для управления состоянием с помощью Vue, пока нет и т. д. и т. д.

По крайней мере, Vuex не заставляет вас использовать декораторы, что означает, что вы можете использовать синтаксис ES5, если хотите, что сложнее с Redux.

Напоминаем, что состояние Vuex можно изменять только с помощью функций мутации, поэтому оно фактически является неизменным в своем способе использования. Vuex полностью использует реактивность Vue, поэтому он не может быть таким же, как Redux, и поэтому у него есть геттеры, которые я считаю очень полезными.

из-за всей магии геттеров / сеттеров, которые Vuex добавляет в магазин

Как было сказано выше, вы не должны ничего устанавливать напрямую с помощью Vuex.

Боковое примечание: когда вы используете много редукторов в Redux, они в конечном итоге будут объединены в глобальное дерево состояний, что означает, что либо он будет видоизменять дерево (привет, мутация), либо (что еще хуже?), Создает новую копию дерева, что означает, для редукторов, вызываемых в большом проекте, потенциально существует большая перегрузка действий, которых можно было бы избежать. Это всего лишь предположение, но обычно это тот случай, когда мутации предпочтительнее, поскольку JS в любом случае не является полностью функциональным языком.

Это все, что я думаю. Я не ненавижу React и считаю его довольно приятным в некоторых моментах, но аргументы, приведенные до сих пор в пользу React для противодействия Vue, для меня неубедительны.
Как я продемонстрировал, Vue может быть полностью JS, если вы хотите и пользователи React в любом случае не используют полный JS (JSX - это не JS, мне жаль вам это говорить).

Процитируем документ React:

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

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

Когда разработчики React начнут писать так, как показано ниже, я, может быть, заткнусь :)

Опять же, у Vue то же самое :)

Оясуми насай. Сайонара.

PS: Используйте инструменты и продукты, которые вам нравятся, и освоите их. Каждый инструмент создан для определенной цели, и всегда трудно сказать, какой инструмент лучше другого, потому что это зависит от выполняемой работы и пользователя инструмента.