Vue2组件可以在Vue3中使用吗

Posted

技术标签:

【中文标题】Vue2组件可以在Vue3中使用吗【英文标题】:Can Vue2 components be used in Vue3 【发布时间】:2020-12-19 03:33:29 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

但是...

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

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

此外,即使没有使用 Composition API,您最终也可能会使用依赖于它的插件,而最终可能不会针对 Vue2 进行回归测试。

Vue3 还在 RC 中

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

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

重大更改列表

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

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

官方建议还是用 Vue2 开始新项目。

【讨论】:

所以如果我理解正确的话,Composition API 只有在加载到 Vue2 项目中的 Vue3 组件中使用时才会出现问题 - 即使使用插件? 简而言之,视情况而定。在大多数情况下,您可能会在 vue3 组件上使用带有组合 API 插件的 vue2,但是在 Vue2 的兼容版本发布之前,您可能会发现事情并不完全一样,或者需要额外的“巧”。想到的一个问题是***.com/questions/61885716/… 赞成这个答案,因为它表明建议从具有稳定版本的新项目开始,而不是盲目地始终使用最新版本,即使它是 RC

以上是关于Vue2组件可以在Vue3中使用吗的主要内容,如果未能解决你的问题,请参考以下文章

vue3对比vue2

uniapp vue2项目迁移vue3项目

vue2升级vue3:Vue2/3插槽——vue3的jsx组件插槽slot怎么处理

如何在新的 Vue3 项目中使用 Vue2 旧组件(.vue 文件)?

2022-03-03 vue3中使用全局变量

将项目从 Vue2 升级到 Vue3 的最佳方法