从Vue 2迁移到Nuxt 3



有一个用Vue 2.7编写的中型应用程序(vuex、Vue路由器等(。

直到某个时刻,我们才有了SSR";用我们自己的双手"工作曲折而缓慢,但很有效。

最近,它已经不再满足项目的需求,我们意识到我们将迁移到Nuxt。

最近,Nuxt 3发布了。它现在处于rc状态。我们押注于Nuxt的进一步发展。因此,我们希望迁移到版本3。此外,我认为在不久的将来,我们将考虑切换到TypeScript,并且在Nuxt 3中,TS支持处于良好水平。

但有一个歧义:Nuxt 3与Vue 3配合使用。此外,建议使用pinia而不是Vuex。

在这方面,问题:

  1. 使用Nuxt 3时,Vue 2上的大多数组件都能工作吗?我也想转到Vue 3,但目前我们希望尽可能加快进程。但我不想像";Vue 3迁移构建";或者
  2. 皮尼亚是否会取代Vuex?我的意思是,Vuex会很快被淘汰吗
  3. 也许在搬家之前,你应该知道更多的陷阱

我将首先从Vue2迁移到Nuxt2,以获得最简单+最快的方法,而不会有太多中断部分。这样,在完成整个迁移之前,您至少可以从一些SSR功能中获益。

然后,正如Estus Flask所说,主要问题将是包本身(比如Vuetify,在稳定状态下仍然不能完全兼容Vue3(。

此外,您可以完全迁移到Nuxt3,同时使用Options API保留大部分组件(无需重新使用Composition API(。

Nuxt3在生产中是可运行的,但您可能仍然需要对其进行故障排除,具体取决于您计划使用的内容。此外,请记住,并非所有模块都已迁移,以下是最新的路线图。

因此,为了回答您的问题:

  • 根据您的组件现在的情况,您可能需要更新它们的一些部分,有关更多详细信息,您可以查看迁移指南,看看从Vue2迁移到Vue3时是否受到了更改的影响。如果你想更快地迭代(以更安全的方式(,请先迁移到Nuxt2(应该很快!(,然后尝试向Nuxt3移动
  • 与Vuex相比,Pinia在几乎所有方面都做得更好。它会在未来18个月内无法使用吗?可能不会。这仍然是官方的建议,也将是总体上的做法(只是总体上更好(,但Vuex到今天仍然完全可用。更多详细信息请点击此处
  • 和往常一样,你将在Vue上添加一层,这样它可能会影响几件事:
    • 根据您正在使用的功能数量(Nuxt模块、Nuxt特定模块(,某些版本可能需要更多的时间才能交付生产(与Nuxt3相比,使用带有Vue3的Tailwind更早(
    • Nuxt是一个元框架,因此它将带来一定的复杂性,以正确理解所有Nuxt2挂钩、同构应用程序的工作方式、如何使用Vue2包、一些gotchas等。这不是来自Nuxt本身,而是更多来自SSR部分
    • Nuxt3正在使用Vue3,因此您需要了解更多如何组合API以获得使用useAsyncData的好处可堆肥等。所以那里也需要同样的工作,所以为什么我建议先过渡到Nuxt2。当然,这完全取决于您的团队,以及您的成员是否已经对Composition感到放心API

总的来说,如果您需要一个满足SSR需求的生产级解决方案,使用Nuxt肯定会很有用,但它也需要一些学习曲线
您还将从中获得相当多的DX,因此这是一个不错的奖励!

此外,在Vue的生态系统中,Nuxt没有真正的竞争对手,所以至少,你不需要完全比较元框架。AstroJS可能是另一种方法,但它从Vue生态系统中脱颖而出(例如,你不会从Nuxt的模块/漂亮的功能中受益(,并解决了一些特定的需求。

附言:Nuxt的团队正在采用同样的方法,即只使用服务器的组件+大量的水合改进。

最新更新