【发布时间】:2020-12-19 03:33:29
【问题描述】:
我目前有一个 Vue2 组件库,我通过私有 npm 存储库创建并在多个项目中使用。我现在在 Vue3 中开始一个新项目,但如果可能的话,我想使用旧组件。我可以混合这样的版本吗?另外,组件可以相反的方式混合吗(Vue2应用程序中的Vue3组件)?
【问题讨论】:
我目前有一个 Vue2 组件库,我通过私有 npm 存储库创建并在多个项目中使用。我现在在 Vue3 中开始一个新项目,但如果可能的话,我想使用旧组件。我可以混合这样的版本吗?另外,组件可以相反的方式混合吗(Vue2应用程序中的Vue3组件)?
【问题讨论】:
Vue2 组件可以与 Vue3 一起使用,而 Vue3 组件可以在 Vue2 中使用。
只要您使用 Classic Vue Js 基于类的 API,您应该没有问题。尽管已经重建了一些底层技术,但 Vue 团队一直在努力使其兼容,尽管我确信这里和那里会有一些边缘情况。
如果您使用 Composition API 来制作组件,就会出现问题。组合 API 是为 Vue3 构建的,虽然您可以通过插件在 Vue2 中获得类似的体验,但您可能会遇到问题。
此外,即使您没有使用 Composition API,您最终也可能会使用依赖于它的插件,而最终可能不会针对 Vue2 进行回归测试。
在撰写本文时,Vue 3 仍作为 RC 版本发布。这可能很快就会改变,无法保证。
如果您打算像使用 Vue2 一样使用 Vue3,那么切换几乎没有什么好处。如果您打算使用新功能(如 Composition API),那么您最终可能无法 100% 兼容。
https://v3.vuejs.org/guide/migration/introduction.html#breaking
听起来,Vue2 将有另一个 (LTS) 版本来解决兼容性问题。
官方建议还是用 Vue2 开始新项目。
【讨论】: