年末将近,Vue 作者尤雨溪在官网上发文提醒 Vue 社区,「Vue 2 将于 2023 年 12 月 31 日达到生命周期结束 (EOL)」,并呼吁使用 Vue 2 的开发团队应该考虑迁移!
源于主流浏览器对新的 JavaScript 语言特性的普遍支持以及 Vue 2.x 代码库随着时间的推移而暴露出来的设计和体系架构问题,尤雨溪及其背后的开发团队在 2018 年萌生重写 Vue 的想法,最终在 2020 年重磅发布了 Vue 3.0 版本。相较于 Vue 2,Vue 3.x 版本性能等方面均有了很大的改进,如今也是时候弃用 Vue 2 了。
12 月 31 日,Vue 团队将在 npm 上将以下软件包标记为已弃用:
- Vue 2 核心的所有主要和次要版本
- 专门支持 Vue 2 的 vue-router 版本(3.x 及更低版本)
- 专门支持 Vue 2 的 vuex 版本(3.x 及更低版本)
迁移不了,还在使用 Vue 2 该怎么办?
- 更新到Vue2最终版本
就在 12 月 24 日,Vue 团队发布了 Vue 2 的最终版本 2.7.16,版本号为 Swan Song,意为绝唱。此补丁版本包括对 2.7 功能的一些最终修复,并改进了与 Vue 3 的类型对齐。对此,Vue 团队强烈建议开发者更新到这一 2.7.16 版本。 - 购买 Vue 2 的扩展支持
如果相关的开发团队在 12 月 31 日之后依然需要继续使用 Vue 2,Vue 开发团队表示已经与HeroDevs 合作提供永无止境的支持 (NES)。即使在 EOL 之后,Vue 2 NES 也会为 Vue 2 提供持续更新和安全补丁,以便具有严格合规性要求的应用程序保持安全和合规。它还保证 Vue 2 应用程序将继续在现代浏览器中有效运行,并保持与 Nuxt、Vuex 和 Vuetify 2 等基本库的兼容性。最后,Vue 2 NES 具有持续的安全监控和 14 天的修复 SLA。
Vue 2 NES 是你在 Vue 2 LTS 期间享受的支持的延续——但无限期。有关更多详细信息,请访问HeroDevs Vue 2 NES 页面:https://zh.herodevs.com/support/nes-vue。 - 通知用户分享关于你的 Vue 2 EOL 计划
除此之外,Vue 团队表示,如果你目前无法迁移到 Vue 3 或使用 Vue 2 NES,但仍需要停留在 Vue 2 上,那么你需要考虑向客户传达你自己的 Vue 2 安全计划。
这并不适用于所有 Vue 用户,但许多团队被 SLA、合同和协议或其他义务禁止向下游方交付不受支持的软件。这些可能是客户、合规机构,甚至是公司内部部门。对于越来越多的行业,监管机构也提高了对软件创建者的责任的期望。
Vue 社区提醒道:Vue 2 过去没有出现重大漏洞,但即使是最成熟的 EOL 项目也确实会出现 CVE——无论是直接出现还是通过受损的依赖项出现。通过OpenCVE 和 Snyk 等安全组织订阅 CVE 通知可能是在发现漏洞后立即展开行动的好方法。浏览器也可能会发布破坏旧库的更改,这种情况很少见,但确实会发生。
综上就是Vue给我们提供的关于无法既有Vue2项目无法迁移到Vue3的一些解决方案
尤雨溪表示,Vue 3 生态系统一直在创新中蓬勃发展。Vue 3.4 目前处于测试阶段,编译器和运行时的性能都有所改进。我们在 Vapor模式方面也取得了良好进展。Vue 2 的结束仅标志着一个新的开始——2024 年对 Vue 来说将是激动人心的一年!
下边让我们来浅谈一下尤雨溪对Vue3的现状和未来,以及一些失误的反思与总结。
1. Vue2面对的问题
- 代码架构
- 性能优化空间
- API在大型项目中的维护性
- 浏览器版本限制
2. Vue3的目标
- 代码架构
- 迁移到TypeScript以及自动生成类型声明
- 重新设计内部模块分层
- 为以后的长期维护打好基础
- 性能
- VDOM算法重构
- 结合编译器对虚拟VDOM进行优化
- 优化组件实例化开销
- API
引入对重构、复用、类型推导更友好的API
- 浏览器
语言支持最低要求ES2015+
3. 开发Vue3遇到的挑战
- 寻找性能优化突破点
- 探索新的API设计
- 周边配套设置工作量巨大
相关链接: