TL;DR: Shall I keep developing with Nuxt.js 2 and wait for a migration guide to Nuxt 3? Or start developing with Vue.js 3 using Vite, and then migrate to Nuxt 3 when it comes out?
Long version: We have an old web application running on AngularJS and Bootstrap for frontend. It is mostly a user interface to easily read and post data to our engine.
We want to redo this web application. Started from scratch using the newest version of Angular 2+ and Material Design for frontend. We haven't even finished rewriting half of the application and it is becoming dreadful to work on.
- The cold start takes too much time
- Every little change reload the whole page. Seconds to minutes of development lost looking at a loading blank page just changing css
- Code maintainability is getting worse... again... as the application grows, since we must create everytime 5 files for a new page (html, component.ts, module.ts, scss, routing.ts)
I'm currently trying to code a Proof of Concept using Nuxt.js and Tailwind CSS. But the thing is, Vue.js 3 is out and has interesting features such as the composition API, teleport and fragments. Also we wish to use the Vite frontend tooling, to improve our time developing regardless of our application size. It feels like a better alternative to Webpack, which is what Nuxt 2 uses.
I'm already trying Nuxt.js with the nuxt-vite experimental module, but many nuxt modules are still incompatible from the time I'm posting this. It is also becoming cumbersome not being able to use teleport or fragments, but that can be circumvented with good components.
What I'm asking is, what should be the wisest decision: keep developing with Nuxt 2 and wait for a migration guide to Nuxt 3? Or start developing with Vue.js 3 using Vite, and then migrate to Nuxt 3 when it comes out?
Better use the nuxt 2, and if nuxt 3 comes out.. I believe it will be easier to migrate because I believe the folder structure for nuxt 2 will also be the same as better use the nuxt 2, and if nuxt 3 comes out.. I believe it will be easier to migrate because I believe the folder structure for nuxt 2 will also be the same as the folder structure for nuxt 3.. so copy-paste folders and fix maybe s some errors, and done...
As someone who's been working in Nuxt since April 2018, I'd highly recommend to go ahead and forge ahead with Nuxt 2. All of the core fundamental hallmarks of Nuxt 2 will be present in Nuxt 3, and Composition API, teleports, etc. are all just building upon the foundation Nuxt 2 has. Same with Vue 2 to Vue 3. There's zero reason to feel pigeonholed into waiting for a release to come out. JS frameworks are always evolving, and you're going to find things that Vue 3 / Nuxt 3 simply might not be ready for that Vue 2 / Nuxt 2 have already fantastically implemented. I'd advise start building your app today and whenever Vue 3 / Nuxt 3 hits a release stage, then you can look at the migration path (which really shouldn't be that categorically complex) and decide whether there are enough performance and framework feature reasons to change. Even when you do change, it can be component by component - you don't have to change everything overnight. Better to get a head start with your app's construction than to delay and worry about which version of the tool to use to build it.