preface
You Yuxi: design process of Vue3( https://juejin.im/post/5ecf58... Youyuxi hopes to release Vue3.0 in the first half of 2020, but it's July now. It's more than half of 2020. Many people go to the issue of Vue and ask what's going on now. Are they focused on developing vite?
In this regard, youyuxi vuejs/rfc An issue is opened to explain the current situation of vue:
Link: https://github.com/vuejs/rfcs/issues/183
translation
Many of our users are asking this question: when will Vue 3 be ready? We can't give an exact answer because the estimated delivery time of software is inherently inaccurate. As a non-profit project, we hope to focus on writing excellent software, rather than on time. But this is a long wait, and we know that these uncertainties will make it difficult to plan projects using Vue 3. So we want to provide some guidance and detailed status updates to help our users adjust their expectations and plans accordingly.
Most of the time spent on Vue 3 was spent designing and building the kernel, which led to many exciting improvements. However, in order to mark the entire framework as "ready", it does not just cover the core of Vue. We also need to have compatible versions of support libraries (Vue Router, Vuex, test utils), tools (CLI, eslint plug-in, browser devtool extension, IDE extension) and documents (applicable to new and old user migration). Although we have been working hard to develop all these parts, it requires a lot of effort and coordination to make all the parts come together, so it is difficult to accurately predict the schedule. We initially hoped to release Vue 3 in the first half of 2020, but considering the current progress, we must readjust it. Our current goal is to release the RC Version (candidate version) in mid July and the official version of 3.0 in early August.
Decision tree
However, this does not mean that you cannot start using Vue 3 now. Now, most of the framework parts are in beta or alpha state, and the core version of vue has been extensively tested by our initial users. The only reason to prevent us from entering RC is the browser devtools extension (currently under active development). All important changes have been written in the RFC, and we have no plans for major changes. If you have been waiting to use Vue 3, the following is a decision tree to help you plan accordingly:
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 } }
Current status of the framework
Vue 3 Core
- Current version: v3.0.0-beta eighteen
- GitHub address: https://github.com/vuejs/vue-next
- RFC address: https://github.com/vuejs/rfcs/pulls?q=is%3Apr+is%3Amerged+label%3Acore
Vue 3 Core has been in the testing phase for more than two months. We have merged all major change RFC s in the plan, and there are no further major change plans before the official version 3.0.
Thousands of early users have used it in new projects, helped us fix many bug s and found some inconsistent behaviors with Vue 2. At this stage, we believe that the Vue 3 kernel is quite stable and can be used for RC.
Vue Router
- Current version: v4.0.0-beta one
- GitHub address: https://github.com/vuejs/vue-router-next
- RFC address: https://github.com/vuejs/rfcs/pulls?q=is%3Apr+is%3Amerged+label%3Arouter
The router hooks in version 4.0 still have some slight differences with Vue Router 3 X version inconsistent behavior, but this is the only reason Vue Router is marked as Beta. This version of Vue Router can be used on new non critical projects.
Vuex
- Current version: v4.0.0-beta four
- GitHub address: https://github.com/vuejs/vuex/tree/4.0
Vuex 4.0 and 3 The only difference between X is that it is compatible with Vue 3! And is ready to enter the RC phase with Vue 3.
Vue CLI
Currently available through vue-cli-plugin-vue-next To use Vue 3 in the Vue CLI. You can set up a new project, and then run Vue add Vue next to switch to Vue3. When RC is reached, Vue 3 becomes an option in the project creation process.
Please note that if you do not particularly need Webpack and IE11 compatibility, you can also use Vite To start the Vue 3 project.
JSX support
Currently, there are two JSX transformation implementations for Vue 3, with slightly different syntax (specific functions for Vue):
We are using This issue To collect the opinions of everyone to ensure the uniformity of design, and develop a formal specification on how to deal with Vue functions in JSX. If you use Vue with JSX, use the This issue Provide your feedback in.
Other items
Project name | state |
---|---|
vue-devtools | WIP (Vue 3 beta is supported in early July) |
eslint-plugin-vue | V7.0.0-alpha 9 [[github address]]( https://github.com/vuejs/esli... |
@vue/test-utils | V2.0.0-alpha 7 [[github address]]( https://github.com/vuejs/vue-... |
vue-class-component | V8.0.0-alpha 6 [[github address]]( https://github.com/vuejs/vue-... |
vue-loader | V16.0.0-beta 4 [[github address]]( https://github.com/vuejs/vue-... |
rollup-plugin-vue | V6.0.0-beta 6 [[github address]]( https://github.com/vueCompone... |