繁体   English   中英

从 Vue 2 迁移到 Nuxt 3?

[英]Migrating to Nuxt 3 from Vue 2?

有一个用 Vue 2.7 编写的中型应用程序(vuex、vue-router 等)。

直到某个时候,我们“亲手”拥有了 SSR。 弯曲而缓慢地工作,但有效。

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

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

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

在这方面,问题:

  1. 使用 Nuxt 3 时,大多数组件是否可以在 Vue 2 上运行? 我也想迁移到 Vue 3,但现在我们希望尽可能加快这个过程。 但我也不想使用像“Vue 3 Migration Build”这样的拐杖。
  2. Pinia 会最终取代 Vuex 吗? 我的意思是,Vuex 会很快过时吗?
  3. 也许在搬家之前你应该知道更多的陷阱?

我会首先从 Vue2 迁移到 Nuxt2,这是最简单 + 最快的方法,没有太多的破坏部分。 这样,在整个迁移完成之前,您至少可以受益于一些 SSR 功能。

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

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

Nuxt3 可在生产中运行,但您可能仍需要根据您计划使用的内容对其进行故障排除。 另外,请记住,并非所有模块都已迁移,这是最新的路线图

所以回答你的问题:

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

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

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

PS:Nuxt 的团队正在研究关于仅服务器组件的相同方法 + 关于水合作用的重大改进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM