Vue2组件可以在Vue3中使用吗

Can Vue2 components be used in Vue3

我目前有一个 Vue2 组件库,我通过私有 npm 存储库在多个项目中创建并使用了这些组件。我现在正在 Vue3 中开始一个新项目,但如果可能的话,我想使用旧组件。我可以混合这样的版本吗?另外,能否以相反的方式混合组件(Vue2 应用程序中的 Vue3 组件)?

Vue2 组件可以与 Vue3 和 Vue3 组件一起使用可以在 Vue2 中使用。

然而...

只要你使用 Classic Vue Js class-based API 你应该没有问题。尽管已经重建了一些底层技术,但 Vue 团队一直在努力使其兼容,尽管我确信这里和那里会有一些边缘情况。

如果您在制作组件时使用合成 API,就会出现问题。组合 API 是为 Vue3 构建的,虽然您可以通过插件在 Vue2 中获得类似的体验,但您可能会遇到问题。

此外,即使 没有使用组合 API,你最终可能会使用依赖它的插件,这可能最终不会进行回归测试针对 Vue2.

Vue3 仍在 RC 中

在撰写本文时,Vue 3 仍作为 RC 版本发布。这可能很快就会改变,不能保证。

如果您打算像使用 Vue2 一样使用 Vue3,那么转换几乎没有什么好处。如果您打算使用新功能(例如 Composition API),那么您最终可能无法 100% 兼容。

重大更改列表

https://v3.vuejs.org/guide/migration/introduction.html#breaking

听起来,Vue2 将有另一个(LTS)版本来解决兼容性问题。

官方推荐还是用Vue2开始新项目。