Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vue 3: mid 2020 status update #183

Open
yyx990803 opened this issue Jun 30, 2020 · 71 comments
Open

Vue 3: mid 2020 status update #183

yyx990803 opened this issue Jun 30, 2020 · 71 comments

Comments

@yyx990803
Copy link
Member

yyx990803 commented Jun 30, 2020

Vue 3: Mid 2020 Status Update

Many of our users have been asking this question: when will Vue 3 be ready? We have refrained from giving a definitive answer because predicting software delivery time is hardly ever accurate. As a non-profit-driven project, we wanted to focus on writing good software instead of hitting deadlines. However, it's been a long wait, and we know the uncertainty can make it difficult to make plans with Vue 3. So here we would like to provide some general guidance and detailed status updates to help our users adjust their expectations and plans accordingly.

The majority of the time spent on Vue 3 has been invested into designing and building a solid core, which brings about many exciting improvments (you can read more about it here). However, in order to mark the whole framework "ready", it's not just about the core. We also need to have compatible versions of the supporting libraries (Vue Router, Vuex, test utils), tools (CLI, eslint plugin, browser devtool extensions, IDE extensions), and documentation (both for new users and migration). While we have been working hard on all of these parts, it is very difficult to accurately predict a timeline given the amount of effort and coordination it takes to have all the pieces fit together. We originally hoped to have Vue 3 released in the first half of 2020, but we have to adjust it given the current progress. Our current target dates are mid July for the RC (release candidate) and early August for the official release of 3.0.

Decision Tree

It doesn't mean you cannot start using Vue 3 today though. Most of the framework parts are now in either beta or alpha, and the core itself has been extensively tested by our early adopters. The only thing that blocks us from going into RC is the browser devtools extension (which is being actively worked on at this moment). All the significant changes have been landed and documented in RFCs and there are no more planned breaking changes. If you've been waiting to get onboard with Vue 3, here 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
  }
}

Status of Major Framework Parts

Vue 3 Core

Vue 3 core has been in beta for over two months now. We have merged all planned breaking change RFCs, and there are no further breaking changes planned before official 3.0 release.

Thousands of early adopters have been using it for new projects and have helped us identify and fix many bugs and behavior inconsistencies with Vue 2. At this stage, we believe Vue 3 core is quite stable and ready for RC.

Vue Router

We still have a few minor router hook behavior consistency issues with [email protected], but these are the only things that is blocking the router from being marked as Beta. The router is usable for new, non-critical projects.

Vuex

The only difference between Vuex 4.0 and 3.x is that it's Vue 3 compatible! It is ready to enter RC together with Vue 3 core.

Vue CLI

Vue 3 support in Vue CLI is currently provided via the vue-cli-plugin-vue-next plugin. You can scaffold a new project and then run vue add vue-next to switch to Vue 3. Vue 3 will become a option in the project creation process when it reaches RC.

Note if you are not particularly attached to webpack and IE11 support, you can also start a Vue 3 project with Vite.

JSX Support

There are currently two JSX transform implementations for Vue 3 with slightly differing syntax (for Vue specific features):

We are using this thread to unify the design and land on an official specification of how Vue features should be handled in JSX. If you use Vue with JSX, please provide your feedback in that thread.

Other Projects

Project Status
vue-devtools WIP (beta channel with Vue 3 support in early July)
eslint-plugin-vue alpha [Github]
@vue/test-utils alpha [Github]
vue-class-component alpha [Github]
vue-loader alpha [Github]
rollup-plugin-vue alpha [Github]
@lucduong
Copy link

Really thanks @yyx990803 to announce us about the progress of Vue 3. Waiting for good release this Aug.

@kamalhm
Copy link

kamalhm commented Jun 30, 2020

It's okay, the wait will be worth it

@akbarsaputrait
Copy link

thank you for the announcement, @yyx990803 💚💪🏼

@xerosanyam
Copy link

Apart from the update, really liked the Decision tree! <3

@xiaoxiangmoe
Copy link

xiaoxiangmoe commented Jun 30, 2020

"I need TypeScript type checking support for template"

@arpowers
Copy link

arpowers commented Jun 30, 2020

The biggest hang-up right now is the missing documentation!

I can read codebases with the best of them, but it doesn't explain the "intentional usage" of an undocumented feature.

Some features, in particular SSR, have had some major changes but are unusable until we know how they are meant to work.

Tl;Dr: without docs, the risk of "doing it wrong" is a deal killer.

@CyberAP
Copy link
Contributor

CyberAP commented Jun 30, 2020

@yyx990803 what's the recommended way for plugin authors to support both Vue 2 and 3?

@asafyish
Copy link

What about vetur ? it's almost a requirement when developing in VSCode.

@sonicoder86
Copy link

sonicoder86 commented Jun 30, 2020

A little addition to the "I just want to play with Vue 3" part:

I'm maintaining a showcase playground with code examples for the new features and a curated list of articles/courses targeting Vue 3. Feel free to contribute if something is missing from them.

@idevwork
Copy link

idevwork commented Jun 30, 2020

Great! 💪

@Ultra-Code
Copy link

Just love Vue 3 soo much , I have been playing around with the composition api in a vue 2 project and it awesome. I just can't wait for August for the official release. Great Work by all the contributors and the community. Let's keep making vue better

@elithecho
Copy link

Thanks for the great work! The only thing stopping me is API changes at this point up until RC.

@lmiller1990
Copy link
Member

lmiller1990 commented Jul 1, 2020

@CyberAP regarding plugins that need to support Vue 2 and Vue 3, the way this was handled from Vue 1 to Vue 2 was just having a separate branch and a note in the README. This is how Vuex is handling this right now. You just deploy a separate version on NPM using a tag (--tag [version]).

I plan to maintain my plugins Vue 2 compat for the next 18 months, then put them into migration mode.

Likely, you leave the main branch as Vue 2, until you feel like most of the issues and users are on Vue 3. Many old-school projects (eg vue-multiselect) still have a 1.x branch as well.

So far, Vue 3 + Router + Vuex + Utils is feeling pretty on point in some small projects I've been working on! Great job everyone.

@asafyish Vetur (for Vue 2) works pretty well with Vue 3 as is (some missing features, like it will warn you about a root node which is no longer required in Vue 3). Aside from small things like that, you can still get TS inference etc without problem. It also looks like the Pine (the maintainer, handle octoref) is doing a ton of work around Vetur lately as well.

@kiaking
Copy link
Member

kiaking commented Jul 1, 2020

Same for Vuex here. We'll probably create 3.0 branch and swap with current 4.0 branch. Vuex 3 will be supported as long as Vue 2 is supported 👍

@flozero
Copy link

flozero commented Jul 1, 2020

Even if it's a bit longer the most important is informations thank's a lot ! 👍

@StevieTaylor
Copy link

Evan You , Immortal god .

@helloCheng09
Copy link

马上打开有道词典翻译一下。大神牛逼!

@vanoneang
Copy link

Thanks to the whole team for your efforts!

@loiccc
Copy link

loiccc commented Jul 1, 2020

Yeah ! Good news !
Is anyone have test to switch an existing app vuejs2 to vuejs3 recently ? Because we try, want it was dirty (mostly imported libraries like Element, etc)... Is anyone have good resources on migration ?

@vanoneang
Copy link

Yeah ! Good news !
Is anyone have test to switch an existing app vuejs2 to vuejs3 recently ? Because we try, want it was dirty (mostly imported libraries like Element, etc)... Is anyone have good resources on migration ?

I encountered the same issue, and now I am going to refactor Element-UI. Seem the Element official has no plan to upgrade Vue3.

@ljq2731
Copy link

ljq2731 commented Jul 1, 2020

Thanks You All

@guicheffer
Copy link

That's really really great stuff! Looking forward to the final release 🙂

@BigGress
Copy link

BigGress commented Jul 1, 2020

Final release...It's time to make new thing😉

@mariusa
Copy link

mariusa commented Jul 1, 2020

Looking forward to migration guide! Where could we find a draft version, to provide feedback on it?

 if (isTrue("I am planning to upgrade an existing Vue 2 project")) {
    await IE11CompatBuild() //this is not required. 
   //We want to upgrade existing Vue 2 projects and drop IE support. You might want to ask how many still need IE support for Vue3 version.

@sandiprb
Copy link

sandiprb commented Jul 1, 2020

@yyx990803 For once and all let's do this here!
https://isvue3readyyet.com/

Repo here: https://github.com/sandiprb/isvue3readyyet

@maximilianschmid
Copy link

Great!

@VictorCam
Copy link

YYESSS!! Can't wait!!!! :D

@stephenjason89
Copy link

stephenjason89 commented Jul 11, 2020

Thank you for the great work 😄
Waiting for laravel, vuetify and other dev tools support
My early test on laravel with vue 3 was working but only with webpack. Would want to see laravel mix integrated thank you 😄

@ThitipongInlom
Copy link

Good news

@tinashekadiki
Copy link

Thank you. When are we getting a native delivery vue solution?

@eshimischi
Copy link

Congratulations on RC 1, guys!

@jesse-ph
Copy link

very excited for the update!

@renesansz
Copy link

awesome! really excited for Vue 3! 😁

@fxxjdedd
Copy link

@yyx990803 excellent job!
By the way, the address of rollup-plugin-vue mentioned in "Other Projects" is wrong.

image

@lzm0x219
Copy link

Is IE11 supported now?

@ThaDaVos
Copy link

ThaDaVos commented Sep 1, 2020

Hey, can't wait for VueJs 3 - got a question though,
The roadmap still says Q3 2020 -> didn't we just enter Q4? ;)
https://github.com/vuejs/vue/projects/6

@jacekkarczmarczyk
Copy link

No, Q4 starts on october

@ThaDaVos
Copy link

ThaDaVos commented Sep 1, 2020

Oh my fault... little headache and a boss telling you that it's Q4 already messed me up 😂

@lmiller1990
Copy link
Member

Tell your boss to wait a little more because Vue 3 is coming very soon

@alejandrolsca
Copy link

alejandrolsca commented Sep 7, 2020

Starting an Angular 1.x application migration to Vue 3 + Vite + Wijmo + Tailwindcss + PostgreSQL. The expectation is to have it running in production by March 2021. We would like to wait for the stable version to arrive, but if we wait, we will not hit the target. We must start in September. Any advice @yyx990803?

@xmsz
Copy link

xmsz commented Sep 13, 2020

I really need IE supported!!! not just IE11!
We have a lot of users is using Windows7(that is right , IE8 are still active ) and Windows10(IE11)。

The most tricky problem is some others software such as WeChat are still using the IE as default browser。

and, Is there any workaround to solve IE supported that I can use now?

@m3nu
Copy link

m3nu commented Sep 13, 2020

Why would anyone support an OS that's already at end of life? If you need IE8 support, maybe stick with an older library until your users can upgrade.

@lmiller1990
Copy link
Member

@xmsz Right now you cannot use Vue 3 in IE. The work around is using Vue 2, works great in IE. If you need to support IE (like me in my work) you are likely used to not using the latest and greatest technologies, anyway. Vue 2 -> Vue 3 is not so different, you can use the composition API and upgrade in the future when IE support is made available. That is what I am planning to do.

@m3nu a lot of orgs are locked to older OS/IE versions for political and/or other reasons. No one wants to use XP + IE.

@meduzen
Copy link

meduzen commented Sep 13, 2020

@lmiller1990 To be complete, as @xmsz is asking for IE8 support: there‘s no Vue support for IE8 and below, as indicated on Vue 0.11 doc and Vue 2 doc.

@axetroy
Copy link

axetroy commented Sep 15, 2020

@lmiller1990 Hi. do you have any news (when?) about supporting IE11?

As vue 3 is about to be released, I am starting to use vue 3 to develop new projects. Before this time, I wanted to know the progress of IE 11 support, so that I could decide whether to use vue 2 or vue 3.

I don’t want to online my project before supporting IE 11. my client might kill me(😢). That will be a sad story

@lzm0x219
Copy link

@lmiller1990 Hi. do you have any news (when?) about supporting IE11?

As vue 3 is about to be released, I am starting to use vue 3 to develop new projects. Before this time, I wanted to know the progress of IE 11 support, so that I could decide whether to use vue 2 or vue 3.

I don’t want to online my project before supporting IE 11. my client might kill me(😢). That be a sad story

me too..🥺

@guicheffer
Copy link

guicheffer commented Sep 15, 2020

FYI if no one has seen the full conference official announcement about Vue 3: https://www.eventbrite.co.uk/e/vue-global-online-conference-tickets-105505078530#tickets - this will happen on this week 17th and 18th 👍

the short live announcement will happen for free in here: https://www.youtube.com/watch?v=Vp5ANvd88x0

@lmiller1990
Copy link
Member

lmiller1990 commented Sep 15, 2020

@axetroy @Vvni if you need IE11 support by a specific date, you will need to use Vue 2 for now.

I am in the same situation. We use Vue at work, and we need IE11 support. This this is open source, even if there was an optimistic deadline in mind for IE11 (which there isn't), there is no guarantee it will be ready by that time anyway (or be 100% perfect).

So, if your success relies on IE11 support, you should use Vue 2. This is what I'll be doing. I don't really see this is a problem - Vue 2 works great in IE11 (battle tested) and you can use the composition API plugin if you want to. Look at this as a good thing - Vue 2 very reliable and has been used in production for years by many companies. You can then upgrade sometime in the future, when all the bugs are ironed out of Vue 3.

I am sure more information will come about IE11 support, but the team is focused on shipping Vue 3 for the rest of the browsers, devtools, testing plugins, router, docs etc. Thanks for your enthusiasm!

@nek4life
Copy link

Any chance at a new update for the end of 2020? Curious about IE11 support as well as what's next for the framework looking into 2021!

@JinPengGeng
Copy link

Is there any workaround to solve IE11 supported that I can use now?after vue 3.0 is official released

@lmiller1990
Copy link
Member

The work-around is to use Vue 2 + Composition API for now - the Vue 3 IE11 support will be have the same reactivity limitations as Vue 2 anyway, so upgrading will not be difficult.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests