您想要使用所有这些 Composition API 的优点。如何实现这一目标?首先,我们计划发布 Vue 2.0、Vue 2.7 的 LTS 版本。这将包括大量弃用警告,因此您将能够看到哪些内容将被弃用,以及如何重构它而不用 Vue 3 破坏它。因此,技术上您仍将使用 Vue 2,但您将为 Vue 3 做好准备无论如何,因为你有所有的警告。
娜塔莉亚:其次,我们将使用一个迁移工具,该工具能够运行它,并且它将作为 codemod 工作,用 Vue 3 替代方案替换与 Vue 2 相关的内容。当然,没有任何代码模组是完 Whatsapp 号码列表 美的。我们的目标是,首先,尽可能进行替换,但在难以处理弃用时也会显示警告。Codemod 将能够识别某个事物并发出警告,但不能自行替换它。这就像一个大计划,当 Vue 2.7 发布时,我认为现在他们的预计到达时间是 12 月(如果我没记错的话),我需要检查路线图,但我认为是 12 月。
娜塔莉亚:生态系统也或多或少已经准备好了。如果你有一个使用 Vue 2.0 的大型项目,只需再等一会儿,直到 Core 稳定下来,因为即使你生成了一个完美的库,它仍然需要一些时间来稳定,因为人们开始使用它,人们开始报告错误。如果您打算将它用于宠物项目并报告错误,我们非常欢迎您这样做。之后就会有一个很好的顺利迁移到 Vue 3 的方法。
德鲁:所以你提到的迁移工具听起来很有趣。这基本上是一个静态分析工具,可以查看您的代码并......
娜塔莉亚:是的,是的,是的,它是代码或工具。目前它的可用方式非常有限。它可作为 Vue CLI 的插件使用。如果您有基于 Vue CLI 的项目,您可以运行 Vue Upgrade 并查看该工具的工作原理。到目前为止,它还不是我们想要的形状。不幸的是,我不从事基于 Vue CLI 构建的项目。我需要等待并检查发生了什么,但是,例如 GitHub,即使没有准备迁移工具,我们也已经采取了一些步骤,因为我们知道哪些内容已被弃用。Vue 3 文档中实际上已经说明了这一点。
娜塔莉亚:有迁移指南。您可以看到所有重大更改和已弃用的内容,甚至可以在 Vue 2.0 代码库上使用其中的一部分。例如,在 Vue 2.6 中,我们更改了插槽的语法。作用域槽的语法已被弃用,但并未被拒绝,它仍然存在。它会发出警告,但您可以运行它。当然,对于已有七年历史的代码库,如果它能正常工作,没有人会关心替换所有已弃用的语法。生产中没有任何警告。老虎机工作。在开发中,“哦,我在控制台中看到一些警告。也许有 20 个,好吧。是黄色不是红色。我不在乎”。
娜塔莉亚:你知道这发生在每个人身上。我们创造了一个巨大的史诗来解决这个问题。查找所有当前的旧语法集。我们努力更换我们的 EventEmitters,再说一遍,这是一个有七年历史的项目,不要评判我们。我们有事件发射器。GitLab 正在开发 EventHubs。我们用外部库替换了基于 Vue 的 fun。我建议也这样做。仔细阅读迁移指南,检查哪些内容已经可以替换,以及您已经可以进行哪些更改,以准备并开始处理此问题。
德鲁:根据迁移工具的当前状态,这是用代码库测试水域的好方法。只需运行它并查看它已经标记的内容,看看它看起来是否正常,或者是否有一些重要的事情,或者它是否仍然不成熟?是不是最好等到 12 月才可能真正解决问题。
娜塔莉亚:如果我有一个大项目,我不建议这样做。如果您有一个小的坏项目,或者可能是一些个人项目,但它不是那么大,我建议您运行它并检查您遇到的任何问题,因为对于两个中型项目,我一直在运行它。我想一两个问题。我不能说它不成熟。它已经处于良好状态。但对于大型项目来说,它是遗产,是一些异国情调的东西。人们,不要在生产中这样做。
娜塔莉亚:此外,如果您想使用项目的脚手架,现在 Vue CLI 支持两种模式。您可以创建Vue 2项目,也可以创建Vue 3项目。至少一定要尝试一下。这对我们来说也是一个好方法,因为当你玩的时候,你会发现错误,你报告错误,我们会尝试修复它们等等。

德鲁:在文档和开发路线图中,我看到提到了迁移构建。这与我们谈论的内容是否有所不同,或者这就是我们正在谈论的内容?
娜塔莉亚:不不不,都是一样的。这是同一个,应该已经准备好了,但现在,如果您计划迁移,主要路径就是阅读文档并遵循那里所说的任何内容,因为每当我们没有迁移工具时,我们肯定会做出努力,文档团队会继续前进并创建了详细指南,说明更改内容、更改原因以及实际替换内容。
德鲁:是的,文档中有相当全面的迁移指南,作为 Vue 3 文档的一部分,它提到了很多需要迁移的更改。我想其中一些不会影响每个项目。对于很多人来说,其中很多本质上都是边缘案例。