Некоторые дебаты о новом API Vue в зарубежных странах в наши дни

Vue.js

Эта статья просто перевод :) Верстка у Наггетса намного лучше, чем у Жиху.

Первый — кто-то публикует на Reddit.

Название: Vue 3 изменится — текущий синтаксис станет устаревшим, а функции композиции, наконец, станут единственным способом создания компонентов.

содержание:

You Yuxi опубликовал несколько дней назадRFC(черновик экспозиции), в котором представлен функциональный API в Vue 3.
Многие функции, которые мы используем, будут объявлены устаревшими, такие как данные, вычисляемые методы, часы, примеси, расширения и функции жизненного цикла. Компоненты Vue в основном состоят из функции setup(), которая возвращает все методы, вычисляемые свойства и прослушиватели.

Если вы хотите продолжать использовать устаревшие функции, Vue предоставляет совместимую версию.

В статье также говорится:

Новый API теоретически полностью совместим с API 2.x (еще одна опция setup()). Тем не менее, введение новых API сделает многие старые опции ненужными в долгосрочной перспективе. Сопоставимый размер кода и прирост производительности могут быть достигнуты, если убрать поддержку этих устаревших опций.

Поэтому для версии 3.0 мы планируем предоставить две разные версии:
Совместимая версия: поддерживает как новый API, так и все опции 2.x;
Стандартная версия: Поддерживаются только новые API и некоторые опции версии 2.x.

обновить:
они пояснили, чтоУстаревшие API будут сосуществовать с Vue 3.x. Не уверен, что Vue 4.x удалит старый API..
Похоже, Ю Юйси прочитал комментарии в сети и заявил, что мой пост неточен, в то же время изменил формулировку исходного текста.Предыдущая «Совместимая версия» была изменена на «Стандартную версию», а предыдущая «Стандартная версия» была изменена на «Облегченную версию»..
Здорово, что вы можете читать все комментарии и слушать мнения всех. Но вы не должны переписывать свою статью и говорить, что я неправильно вас понял.


В дальнейшем команда Vue работает надHacker News опубликовал ответ, что переводится следующим образом:

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

  • Новый API полностью добавлен в Vue 2.x без каких-либо изменений.
  • Vue 3.0 будет иметь стандартную версию с новыми и старыми API, а также дополнительную упрощенную версию, в которой удалены некоторые старые API, чтобы сделать Vue меньше и быстрее.
  • Это всего лишь «проект экспозиции», и все API неубедительны. Вы можете оставить свои предложения, мы не выпускаем Vue 3.0 в ближайшее время.
    Подробнее здесь:vuejs/rfcs

После окончания ответа следуют комментарии под этой статьей.

Ивансбро прокомментировал:

Привет, в частности, в то время как новое предложение API уточняет, что эти изменения обозначены как необязательные для Vue 3, долгосрочная цель команды Vue неясна, и новый API выглядит как приманка, установленная для Vue 4.

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

Если у вас есть команда, которая очень сосредоточена на производительности и действительно любит функциональность, React — лучший выбор. Facebook также продолжает вкладывать значительные средства в повышение производительности. Вы также очень обеспокоены производительностью нового API, и это здорово, и я ценю это, но вы идете против другой волны людей, делая это.

Производительность не является преимуществом Vue, функциональное программирование не является преимуществом Vue, и никакие другие странности, упомянутые в этом RFC, не являются преимуществом Vue. Никто не смотрит на Vue и не говорит: «Вау, Vue на целых две миллисекунды быстрее, чем React, при рендеринге тестового компонента в 1000 раз!»

Кто те люди, которые используют Vue? Те, кто недоволен сложностью, отображаемой React. Теперь команда Vue говорит мне, что «подход React более продвинут и подходит для опытных пользователей». Честно говоря, это оскорбление. Мы давно предсказывали, что сложность React не стоит того, чтобы наша команда пробовала, или мы столкнулись с проблемами в процессе использования React, поэтому мы выбираем Vue, потому что Vue решает эти проблемы и может делать это с React так же эффективно.

Как победить React на территории React? Кажется, у Vue 3 есть ответ. Поздравляем вашу команду Vue с победой над React, но мы не ждем этого ответа. Это не тот ответ, который мы хотим дать нашим командам, нашим боссам, нашим заинтересованным сторонам.

Я хочу задать вам вопрос: как мне управлять своим кодом? Долгосрочным решением было бы переписать весь код в моем приложении (во времена существования Vue 3), а затем вернуться к тому, с чего я начал, где я отказался от React и перешел на Vue 2. Считаете ли вы справедливым просить своих пользователей сделать это? Вы уверены, что это тот результат, который вам нужен?

Ю Юйси ответила:

Во-первых, новый API имеет мало общего с производительностью, улучшение производительности Vue 3 в основном связано с новой стратегией компиляции шаблонов.
Во-вторых, я думаю, что это немного неуместно, что вы упрощаете проблему в новом API, который усложняет. Этот RFC трудно понять, потому что он содержит так много информации. Вы можете взглянуть на этот пример, и вы, вероятно, увидите, что новый API не вносит новую сложность:https://gist.github.com/yyx990803/762ec427882a61be3e4affe02f8af555
У Vue огромное количество пользователей, и я, честно говоря, не понимаю, почему добавление кучи API было бы оскорбительным. Поскольку мы ясно понимаем, что в некоторых случаях новый API будет более элегантным, возможно, вы не сталкивались с такими случаями (я не говорю, что ваши текущие потребности невелики). Мы имеем дело с разными приложениями, поэтому мы должны учитывать эти ситуации. И наоборот, было бы оскорбительно думать, что Vue никогда не столкнется с требованием, достаточно сложным, чтобы использовать эти новые API.
Наконец, чтобы ответить на ваш вопрос: вы можете продолжать использовать старый API столько, сколько захотите. Пока сообщество считает необходимым сохранить старый API, мы будем его сохранять. Мы не будем заставлять вас использовать новый API.

Другой прокомментировал:

Я просто хочу сказать, что в RFC есть одно серьезное изменение, которое ранее было написано как «стандартная версия» и «совместимая версия», стандартная версия не поддерживает data/computed/methods/watch/provide/inject/mixins/ extends и все циклы объявлений.
После обновления RFC предыдущая «Совместимая версия» стала «Стандартной версией», а предыдущая «Стандартная версия» стала «Легкой версией».

десант сказал:

Слово «совместимость» описывает отношение команды Vue к старым API. Совместимый значит устаревший для меня.

boubiyah сказал:

Я не знаю, почему Юси Ю не мог быть более откровенным в названии этих двух версий.
Почему бы Вам просто не сказать: «У меня есть некоторые проблемы с названием версии и планами на будущее, и ответ сообщества дал мне знать, что я должен пересмотреть формулировку».
Вместо этого он сказал: «О чем ты говоришь? Я всегда так думал».

Густойс говорит:

Это может быть отчасти моя вина. You Yuxi уделяет основное внимание технической стороне, в то время как я уделяю внимание сообществу. Мы не знали о потенциальных проблемах с именованием версий.


Наконец, всего 6 часов назад Ю Юйси написала в Твиттере:

Earlier today I was really itching to write a dedicated blog post for those who did not and still refuse to actually read the RFC, but it's my wife's birthday so I'll do it tomorrow.
Я очень хотел на днях написать отдельную статью для тех, кто еще не читал RFC, но сегодня день рождения моей жены, так что эту статью я напишу завтра.


Дополнение: Китайская версия RFC не обновлялась

Заканчивать.