找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

3588

积分

0

好友

478

主题
发表于 昨天 20:37 | 查看: 3| 回复: 0

手头有老旧的 Vue 2 老项目迁移到 Vue 3,有哪些需要关注的点?

要对比两个版本的差异,不妨分别创建一个 Vue 2 和一个 Vue 3 项目,先在小范围进行实验验证,确认没问题后再批量修改。

如何创建 Vue 2 项目?

pnpm create vue@legacy vue2-demo

注意,@legacy 标签是必须的,它让 Vite 创建 Vue 2 项目。否则,默认创建的都是 Vue 3 项目。

Vite 创建 Vue 2 项目命令输出

如何创建 Vue 3 项目?和上述命令差不多,就差一个 @legacy 标签。

pnpm create vue vue3-demo

Vue 3 项目启动输出,端口占用更换

在应用入口文件 src/main.js 中,Vue 2 的 Vue 构造函数,变成了 Vue 3 的 createApp() 工厂函数

Vue 2 与 Vue 3 入口代码对比:new Vue vs createApp

如果页面只有一个 Vue 实例,两者差别不大。

如果页面同时共存多个 Vue 实例,Vue 2 所有实例共享一套全局配置,而 Vue 3 实例的配置各自独立,互不干扰。

在页面挂载时,两者还有一个小小的不同。Vue 2 组件会用新内容替换容器元素,而 Vue 3 会成为容器元素的子元素。

Vue 2 与 Vue 3 挂载行为差异

在列表循环中,为了标识元素唯一性,需要为元素定义 key 值。

Vue 2 的 <template> 元素无法定义 key 值,只能定义在实际元素上。Vue 3 的 <template> 元素支持定义 key 值。

Vue 3 支持 template 上 key 的对比代码

参考资料:Vue 3 Migration Guide




上一篇:发烧39度,出租屋里被工作消息轰炸:没人问你疼不疼,只问“能交吗”
下一篇:开源 IoT 网关防串连:我如何用 WASM 打造一把“隐形锁”
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-5-25 00:53 , Processed in 0.611413 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表