quasarframework / quasar

Quasar Framework - Build high-performance VueJS user interfaces in record time
https://quasar.dev
MIT License
25.87k stars 3.51k forks source link

Quasar v2 (Vue 3) - released! #7836

Closed rstoenescu closed 3 years ago

rstoenescu commented 4 years ago

Quasar v2 is out! Read our announcement.

Is v2 stable?

YES

The plan

Our main focus at the moment is shipping Quasar v2 with Vue v3. The plan is to not introduce any breaking changes, unless forced by the vue 3 / vue-router 4 architectures.

Affected Quasar packages: "quasar", "@quasar/app".

Rough schedule

The code

The branch currently holding Quasar v2 is called dev (was previously vue3-work).

Donations

If you want to speed up the development of Quasar please consider donating to the project. With proper funding, it allows more of the team to work on the project in a much more dedicated manner.

Donations - https://donate.quasar.dev

If you're in a company and using Quasar for commercial projects, explain to your management the importance of monthly donations (eg. $200+) for open source projects: you're the one using it every day and this makes you the best suited person to convince them. Be creative! :slight_smile:

Quasar is saving your company tens of thousands of development hours (quite literally), which in turn is a pretty high money savings. Consider giving back a part of those savings to refuel the project itself :wink:

Update: June 21st 2021

Quasar v2 stable (with Vue.js 3) has been released! Time to party! https://github.com/quasarframework/quasar/discussions/9734

Update: June 19th 2021

Next release is v2.0.0 stable. Branch vue3-work has been merged into dev. The Qv1 work will now be done exclusively on the new v1 branch.

Update: April 27th 2021

We have passed the final major milestone: Quasar CLI now ships with Webpack 5, which was badly needed to support Node 13+. Faster build speeds and lower memory usage. We're just a few small steps away from getting Quasar v2 out of beta!

Update: April 4th 2021

The last Quasar CLI mode left to be enabled, which is SSR, is now also available. Here is the link to the upgrade guide on SSR. We are targeting for a 2 weeks testing period for SSR mode then we will release the official stable version of Quasar v2.

Update: February 16th 2021

We're close to the stable release. The only thing remaining is the SSR support. Quasar is SSR ready, however we're only going to enable SSR support as soon as these Vue3 SSR bugs (critical for us and your experience) are solved:

Update: February 10th 2021

SSR mode is ready (UI and CLI-wise) to be released. Unfortunately, there are quite a few Vue SSR bugs that need to be fixed before we enable the build mode for Quasar v2. We are in the process of reporting them and we'll start collaborating with the Vue team to help fix them.

Update: January 11th 2021

Hi All,

There are still some things being worked on for Quasar v2, but mainly we're now writing the migration guide. Our target for release of the public beta is within January 2021. The new version is based on Composition API. But it's not just a port to Vue 3. There are lots of significant performance enhancements in Quasar's algorithms too! You'll love it!

Unfortunately, the first beta release won't include SSR support, due to missing some upstream features in Vue 3, which we'll contribute to via PRs. We'll release SSR support during the beta stage lifecycle though.

We're also trying to integrate Webpack 5 support into the @quasar/app v3 release, but if we are unable to get this done (ie: external dependencies and such) then we'll shoot for @quasar/app v4 release.

Stable release will be anywhere within Q1 2021, but as is the case with OSS, it will be ready, when it's ready. And of course, it will be ready when we know the quality is high enough to meet both your expectations and ours.

In the meantime, the wonderful framework you've come to love is still here and you don't have to wait for Quasar v2 to start a new project with Vue 3's major new feature (i.e. using the composition API). Of course, if you choose to hold off on Vue 3 features, we'll make the upgrade as easy as possible for you. That's a promise. :slight_smile:

The Quasar Team

ontwikkelfabriek commented 4 years ago

@rstoenescu Will the codebase of Quasar v2 with Vue 3 be rewritten in TypeScript just like Vue3 is?

IlCallo commented 4 years ago

Quasar v2 will lay the fundations needed for a Composition API + TS + tests incremental migration, which will take place during Quasar v2 lifecycle.

Quasar v3 will probably be released when this incremental migration is completed.

chintan-mishra commented 4 years ago

Those who downvoted. Or are planning to do so. READ THIS.

Providing a stable API that maintains as much compatibility as possible requires time, effort, and capital. This is not to say that things won't break when moving from v1->v2. But the collateral effect of migrating to a complete TS based Quasar will be too large on the wider community. Thus, as an engineer I am following the exact same steps mentioned here. I am migrating some code of my very large Quasar v1 with Vue2 to TS and by the time v3 arrives we will have the whole community using TS.

Finally, if you are creating a new project and want to use TS then just add TS support when creating the application using the wizard.

rstoenescu commented 4 years ago

Maybe an additional important information. For app developers it won't matter whether Quasar is written in TS or not. Sure, the autocomplete will work a bit better, but you as a developer are NOT required to also use TS in your app.

matt-spx commented 4 years ago

Are there any plans or ideas to support vite in quasar v2?

zhengycsh commented 3 years ago

desire

leannc commented 3 years ago

Is the beta version available now ? Waiting for this~

rstoenescu commented 3 years ago

Hi everyone,

Sorry but we'll have to delay the beta version due to vue-loader which has some SSR features not implemented yet. We cannot release a beta version until SSR is fully solved or else we might introduce breaking changes during this beta stage -- and we want to avoid this at all costs.

The new schedule is:

bzd2000 commented 3 years ago

Is there an Alpha release?

rdev06 commented 3 years ago

Can I use branch vue3-work for learning Quasar2 with vue 3 purpose?

bzd2000 commented 3 years ago

Tried to build the vue3-work branch, but don't see how to build to app package. I followed to instructions in the contribution guideline, but it seems only for the UI package.

Are there instruction on how to build the App package?

BenHayat commented 3 years ago

@rstoenescu I had recently made a suggestion on next Quasar version # in the forum. I'd like to echo that here as well.

Most third party products try to follow the main product version # to make it more clear to the customers. For example, now the the new .Net 5 is out, most of the third party libraries, they use # 5 as well. Like Entity Framework 5 or ASP.Net 5 and etc. In Vue, Vuetify and PrimeVue are doing the same following V3. My suggestion is to skip Quasar V2 numbering and go straight to V3. This way, new prospects won't get the wrong impression that Quasar V2 is for Vue 2. Hope this helps.

smolinari commented 3 years ago

@BenHayat - Unfortunately, that isn't going to work. Quasar/UI v2 is planned to be purely a port to Vue 3. Quasar v3 is planned to be a further and important evolution of Quasar, also built on Vue 3. See the dilemma? 😊

Scott

BenHayat commented 3 years ago

@BenHayat - Unfortunately, that isn't going to work. Quasar/UI v2 is planned to be purely a port to Vue 3. Quasar v3 is planned to be a further and important evolution of Quasar, also built on Vue 3. See the dilemma? 😊

Scott

@smolinari
Now it all makes sense. Quasar V2 and Quasar V3. I didn't know this information.

Thank you Scott!!!

layanto commented 3 years ago

Will Quasar V2 and V3 consider supporting Pinia as alternative to Vuex? I think the API for Pinia is similar to the proposed API for Vuex 5 and has better typescript support.

smolinari commented 3 years ago

@layanto - Vuex isn't directly a part of Quasar. It's only suggested during project creation via the CLI. In the end, you can use whatever state management package you'd like, as long as it works with Vue.

Scott

layanto commented 3 years ago

What about accessing store from boot file if using Pinia as state management instead of Vuex?

smolinari commented 3 years ago

I believe Quasar will inject in anything found under src/store. @layanto Don't quote me on that though. 😁

Scott

rstoenescu commented 3 years ago

Teaser: https://codepen.io/rstoenescu/pen/dypbRPL?editors=111

JulesNeck commented 3 years ago

This looks really promising. The new quasar version will be my favourite christmas gift. Thanks Razvan for your magnificent work!

BenHayat commented 3 years ago

What is the significance of this teaser, beside these fact that Quasar is running in V3? Am I missing something from looking at those cards?

danielfaust commented 3 years ago

@BenHayat That finally the migration of that old AngularJS-webapp to Vue3+Quasar is within reach?

smolinari commented 3 years ago

@BenHayat - It's just a sign.. a teaser.. that Quasar v2 is getting closer to being a reality.

Scott

BenHayat commented 3 years ago

@BenHayat - It's just a sign.. a teaser.. that Quasar v2 is getting closer to being a reality.

Scott

There is absolutely no doubts in anyone's mind that the team will deliver even better than others. I thought I was missing something in particular, and that's why asked.

Thanks Scott

JulesNeck commented 3 years ago

@BenHayat The new composition api of Vue 3 makes it possible to seperate code by logical concerns instead of spreading it over options and mixins. So it's just a different way to write code. The new quasar version will make it easier to write larger and more complex applications. But I guess you already know this. For me as a developer working on a quite complex project with quasar this will impact a lot of my code. The teaser isn't spectacular, granted. But it shows that Razvan is busy working on it. And this are very good news.

BenHayat commented 3 years ago

@BenHayat The teaser isn't spectacular, granted. But it shows that Razvan is busy working on it. And this are very good news.

Thanks! I got the same impression and I'm very happy. Honestly, there isn't anything out there that can get close to Quasar. Trust me I've tried them... :-)

bzd2000 commented 3 years ago

Indeed, it is the most complete and best maintained.

danielfaust commented 3 years ago

there isn't anything out there that can get close to Quasar

I've tried them as well. For me the one thing which immediately hooked me on Quasar was the fact that the popup dialog would not scroll the page if dragged, it really kept a lock in the pages scrolling position, and if anything would scroll, it would be the content of the dialog, if designed to scroll, but nothing else. It's a very minor thing, but it shows the level of detail in correctness of this framework.

Example open the following in Chrome on Android:

1) https://vue.mdbootstrap.com/#/modals/modal and scroll to "Centered", for example, then tap and scroll the dialog, it scrolls the entire page, but everything should be locked

2) Go to https://quasar.dev/vue-components/dialog and go to Basic - Alert (or any other). Everything is locked, just like a native component. From all the frameworks I tested, Quasar was the only one which got this right.

JulesNeck commented 3 years ago

@BenHayat Of course I trust you! ;-) I also tried a lot of different tools and frameworks over the years. I started with Visual Basic .Net, after that C#. I even used Angular and react a bit. Before Typescript came up I worked on a huge project with Coffeescript and the Qt framework (which is basically C++). I also experimented with ionic. And after that I discovered quasar. It's like a developers dream! It's so elegant and clean. Even the code looks nice... ;-)

BenHayat commented 3 years ago

@rstoenescu ; Hi Razvan; Could you please clarify something for me? In Quasar V2, does this mean that we can create a Vue 3 project, install Quasar V2 and write Vue 3 code, i.e. composition API, even though the Quasar components haven't been converted/re-written for Vue Composition API?

At this point, it's not important to me, if the Quasar components are NOT re-written for Vue, as long as I can build Vue compatible project and use Vue 3 features and Quasar components.

Thank you in advance!

rstoenescu commented 3 years ago

@BenHayat Correction. More than half of Quasar components have been rewritten using Composition API. Eventually they will all be (it's my current focus these days). But regardless, you'll be able to use Options API or Composition API or any other Vue 3 feature in your projects.

smolinari commented 3 years ago

@BenHayat

does this mean that we can create a Vue 3 project, install Quasar V2 and write Vue 3 code,

The suggested and better route will be, create a Qv2 project (via the Quasar CLI) and develop your app with Vue 2 and/ or Vue 3 concepts (i.e. options or composition APIs), but have your app 100% driven by Vue 3 at the core. 😁

Scott

BenHayat commented 3 years ago

@rstoenescu

@BenHayat Correction. More than half of Quasar components have been rewritten using Composition API. Eventually they will all be (it's my current focus these days). But regardless, you'll be able to use Options API or Composition API or any other Vue 3 feature in your projects.

Hi Razavan; Previously, Scott had mentioned:

Quasar/UI v2 is planned to be purely a port to Vue 3

And when I asked for clarification from you, I was mainly trying to understand what Quasar 2 is and how we can use it with Vue 3. But you said "Correction. More than half of Quasar components have been re-written using Composition API"

So, now I'm even more confused. Can we have a clear statement, on the path how we should peruse with NEW project?

I'm getting conflicting answer between Razavan's and Scott's answers. Thanks!

rstoenescu commented 3 years ago

What Scott and I said is not conflicting at all. Quasar v2 will be based on Vue 3. Vue 3 offers both Options API and Composition API (although Composition API is preferred), so you can write your components in the form that you like. Options API is not something specific to Vue 2 only. It's irrelevant whether Quasar UI is written with Composition API or not as it does not affect your devland code.

You will be able to upgrade your current project to use the newer "quasar" and "@quasar/app" versions or you can create a new Quasar CLI project. The stride with Quasar v2 is to have a smooth transition when developers upgrade to it. All .vue files will mostly not need any update since vue-loader will compile SFC directly to Vue 3. There are a few (but NOT many) breaking changes in Quasar UI as well (due to the under the covers Vue3 architecture change), but upgrading should be very easy.

BenHayat commented 3 years ago

@rstoenescu

What Scott and I said is not conflicting at all. Quasar v2 will be based on Vue 3.

But, those two answers, were related to porting existing Quasar Vue 2 apps to Quasar Vue 3 app. That's not what I've been asking.

It's irrelevant whether Quasar UI is written with Composition API or not as it does not affect your devland code.

That was my point in my original question, which I said, "It's not important to me if Quasar's components are written in Option API or Composition API". So we both agree on that.

My main question was, which you kind of answered, for a NEW project, Can we start with Vue 3 and composition API for OUR components and NOT write the code with Option API (Vue 2 style) and have to go back again and change all the Option API codes to Composition API? This is what I'm trying to avoid. My question isn't about porting Quasar 1.x & Vue 2 code to Vue 3 code. It's about starting a NEW project using Composition API for our components.

I hope my question is more clear now.

rstoenescu commented 3 years ago

@BenHayat to summarize: yes, you can start with composition api in a new project

smolinari commented 3 years ago

@BenHayat - Not trying to sound like a smartass here, but

Quasar/UI v2 is planned to be purely a port to Vue 3

If Quasar is porting to Vue 3, it would be majorly silly for us to have the Quasar v2 users have new projects only working in a Vue 2 fashion (i.e. only offer the options API). So, to me, it was common sense that a port to Vue 3 for Quasar means Quasar v2 users would get all the bells and whistles of Vue 3 i.e. they can use the composition API. Sorry, if that assumption caused the confusion.

Scott

BenHayat commented 3 years ago

@BenHayat - Not trying to sound like a smartass here, but

Quasar/UI v2 is planned to be purely a port to Vue 3

If Quasar is porting to Vue 3, it would be majorly silly for us to have the Quasar v2 users have new projects only working in a Vue 2 fashion (i.e. only offer the options API). So, to me, it was common sense that a port to Vue 3 for Quasar means Quasar v2 users would get all the bells and whistles of Vue 3 i.e. they can use the composition API. Sorry, if that assumption caused the confusion.

Scott

In the past, I've been burnt by making an assumption based on "Common sense" or "my interpretation". Now I have to be very careful and clear, as my decision affects others and I'm responsible for that. So I tend to be very black & white not to fall into my own wrong assumption's trap.

okssq commented 3 years ago

Today is December 15, has the plan been postponed?

pdanpdan commented 3 years ago

@okssq Where are you from? :) Most of the world is on December 16

okssq commented 3 years ago

@pdanpdan I would like to ask when will the beta version be released? 0.0

rstoenescu commented 3 years ago

Sorry, but postponed for January. We're not yet at the level that we'd like.

okssq commented 3 years ago

Hard work, everyone.thank you everyone! Is there a certain time, otherwise I have to find something else because of work

IlCallo commented 3 years ago

Hey @okssq, consider that the deadlines written here are for the beta version of Quasar 2. If you have to start a new production project, you'd want to wait for the stable release and use Quasar 1 in the meantime: we'll provide an upgrade guide when Quasar 2 is ready :)

okssq commented 3 years ago

I saw it. I originally wanted to use the beta version of Quasar 2 to start writing this project. When the project is completed, the official version of Quasar is estimated to be almost complete. But now quasar 1 programming vue 3 does not seem to be very friendly!

robertzml commented 3 years ago

I'm waiting for the beta version of Quasar 2 to start a new project! Alpha release is also acceptable.

danielfaust commented 3 years ago

I'm also waiting for the beta version in order to start a migration from Vue2 to Vue3, so I guess I'm going to start either in January or see how I can get started with the demo code which @rstoenescu provided in order to start earlier in order to get my feet wet.

I have no need to rush into production, as the development/migration will take its time anyway. Also, this gives me the opportunity to provide feedback while the beta is running.

The greatest thing is about this thread is that it is now clear that Quasar will not only be available for Vue3, but that this will happen relatively soon.

Thanks to all who create this excellent framework.

bonatoc commented 3 years ago

Not meaning to be a pain in the ass, but given how excellent a framework this is, I think a "hello" and "please" would be appropriate from some folks who come and say "is it ready yet? Is it ready yet?", as if "Open Source" meant not considering all the hard work and dedication that comes at play.

I'm going into beta real soon, and if all goes well, I plan to chime in. Saying thank you is all fine and dandy, but let us not forget that without dineros, we ain't gonna go far. And this framework deserves the same success Nuxt has.

Maybe just increment the font size of the doc would help. As it is, it gives the impression of being too much "developer" oriented, if this makes any sense. I get a slight "nerd" feeling from it.

Also, subcategories for UI components would be great. The UI components are fantastic, but only "Forms" gets the subcategory treatment, making browsing them a bit tedious.

Aside these minors complaints, I've been suprised at how fast it is, at how easy a default PWA was built, and how well Pug handles the components (even though acquiring Pug reflexes is kind of a steep curve).

Congratulations for the excellent work. I was impressed at the docs when I first discovered Quasar, I am even more impressed that none of them stated bullshit. This beast delivers.

zcaudate commented 3 years ago

Hahaha. Is it ready yet? Please?

Eagerly anticipating the next release.

BenHayat commented 3 years ago

Hahaha. Is it ready yet? Please?

Eagerly anticipating the next release.

You should read Razvan comment from four days ago.