Vue 3: обновление статуса на середину 2020 г.

Vue.js

предисловие

Я перевел это раньше[Перевод] Юйси Ю: Процесс проектирования Vue3Упоминается: You Yuxi надеется выпустить Vue 3.0 в первой половине 2020 г., но уже июль, а 2020 г. на полпути.Многие люди подошли к проблеме Vue, чтобы спросить, что происходит сейчас, да. на разработке vite?

В связи с этим Ю Юй Си находится вvuejs/rfcВ нем была открыта проблема, специально объясняющая текущую ситуацию с Vue:

Связь:GitHub.com/vUEJS/RFCs/…

перевод

Многие из наших пользователей задают этот вопрос: когда будет готов Vue 3? Мы не можем дать окончательный ответ, поскольку расчетные сроки поставки программного обеспечения по своей сути неточны. Как некоммерческий проект, мы хотим сосредоточиться на написании отличного программного обеспечения, а не на сжатых сроках. Но это определенно было долгое ожидание, и мы знаем, что эти неопределенности могут затруднить проекты, планирующие использовать Vue 3. Поэтому мы хотели предоставить некоторые рекомендации и подробные обновления статуса, чтобы помочь нашим пользователям соответствующим образом скорректировать свои ожидания и планы.

Большая часть времени, затраченного на Vue 3, была потрачена на проектирование и сборку ядра, которое принесло множество интересных улучшений. Однако для того, чтобы пометить всю структуру как «готовую», необходимо использовать не только основные части Vue. Нам также нужны совместимые версии библиотек поддержки (Vue Router, Vuex, тестовые утилиты), инструменты (CLI, плагины eslint, расширения инструментов разработки браузера, расширения IDE) и документация (для новых и старых пользователей, мигрирующих). Несмотря на то, что мы усердно работали над разработкой всех этих частей, их согласование требует больших усилий и координации, что затрудняет точное прогнозирование графика. Изначально мы надеялись выпустить Vue 3 в первой половине 2020 года, но, учитывая текущий прогресс, нам пришлось его перенастроить. Наша текущая цель — выпустить RC-версию (версию-кандидат) в середине июля и официальную версию 3.0 в начале августа.

Древо решений

Однако это не означает, что вы не можете начать использовать Vue 3 прямо сейчас. В настоящее время большинство частей фреймворка находятся в бета- или альфа-версии, а базовая версия vue была тщательно протестирована нашими первоначальными пользователями. Единственное, что нас останавливает от RC — это расширение браузера devtools (сейчас находится в активной разработке). Все важные изменения прописаны в RFC, больших изменений у нас нет. Если вы ждали Vue 3, вот дерево решений, которое поможет вам спланировать соответствующим образом:

IWantVue3()

async function IWantVue3() {
  await read(`https://github.com/vuejs/rfcs/pulls?q=is%3Apr+is%3Amerged+label%3Acore+-label%3Arevoked+-label%3A2.6+sort%3Acomments-desc`)

  if (isTrue("I just want to play with Vue 3"))) {
    // If you just want to try Vue 3 out - you can do it right now with Vite.
    // Vite (https://github.com/vitejs/vite) is a new dev/build tool that we
    // created that is lighter, faster and produces smaller bundles. It works
    // with Vue 3 out of the box.
    run(`npm init vite-app hello-vue3`)
    return
  }

  if (isTrue("I am planning to use Vue 3 for a new project")) {
    if (isTrue("I need IE11 support")) {
      await IE11CompatBuild() // July 2020
    }
    if (isTrue("RFCs are too dense, I need an easy-to-read guide")) {
      await migrationGuide() // July 2020
    }
    if (isTrue("I'd rather wait until it's really ready") {
      await finalRelease() // Targeting early August 2020
    })
    run(`npm init vite-app hello-vue3`)
    return
  }

  if (isTrue("I am planning to upgrade an existing Vue 2 project")) {
    await IE11CompatBuild()
    await migrationGuide()
    await ecosystem(
      // this is the tricky part: if you have an existing, non-trivial Vue 2
      // app, you likely are using some dependencies that are not yet
      // Vue-3-compatible, for example meta frameworks like Nuxt, or UI
      // component libraries like Vuetify. If that's the case, our suggestion
      // is don't be in a hurry to upgrade. It *will* take some time for the
      // ecosystem to catch up.
      // Also note that you can start using Vue Composition API in Vue 2 today
      // via https://github.com/vuejs/composition-api - we are also going to be
      // backporting compatible Vue 3 features to 2.x once 3.0 is out.
    )
    return
  }

  if (isTrue("I am the author of a Vue ecosystem library")) {
    // It's time to make your lib Vue 3 compatible!
    return
  }
}

Текущее состояние фреймворка

Vue 3 Core

Vue 3 Core находится в стадии бета-тестирования более двух месяцев. Мы объединили все запланированные критические изменения RFC, и никаких дальнейших критических изменений не планируется до официального выпуска 3.0.

Тысячи первопроходцев использовали его в новых проектах и ​​помогли нам исправить множество ошибок и обнаружили некоторое непоследовательное поведение с Vue 2. На данном этапе мы считаем ядро ​​Vue 3 достаточно стабильным и готовым к RC.

Vue Router

Версия 4.0 хуков маршрутизатора по-прежнему немного несовместима с версиями vue-router 3.x, но это единственное, что заставило Vue Router быть помеченным как бета-версия. Эту версию Vue Router можно использовать в некритичных новых проектах.

Vuex

Единственная разница между Vuex 4.0 и 3.x заключается в том, что они совместимы с Vue 3! И он готов перейти на этап RC с Vue 3.

Vue CLI

В настоящее время доступно черезvue-cli-plugin-vue-nextиспользовать Vue 3 с Vue CLI. Вы можете создать новый проект, а затем запустить vue add vue-next, чтобы переключиться на Vue3. Когда RC будет достигнут, Vue 3 станет опцией в процессе создания проекта.

Обратите внимание, что если вам не нужна совместимость с Webpack и IE11, вы также можете использоватьViteчтобы начать проект Vue 3.

поддержка JSX

В настоящее время существует две реализации преобразований JSX для Vue 3 с немного другим синтаксисом (для функций, специфичных для Vue):

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

другие проекты

заглавие условие
vue-devtools WIP (поддерживает бета-версию Vue 3 в начале июля)
eslint-plugin-vue v7.0.0-alpha.9 [адрес на гитхабе]
@vue/test-utils v2.0.0-alpha.7 [адрес на гитхабе]
vue-class-component v8.0.0-alpha.6 [адрес на гитхабе]
vue-loader v16.0.0-beta.4 [адрес на гитхабе]
rollup-plugin-vue v6.0.0-beta.6 [адрес на гитхабе]

Замечательные статьи в прошлом