关于Vue2升级Vue3的考虑
公司项目是vue2 node14,考虑要不要升级成vue3,询问我的看法
写习惯了vue3 setup的我是觉得……vue3还是很香的,当然要升级一个系统考虑的事很多,不仅仅是技术上的,还有成本与收益的问题
作为一个 创业者(商业角度)+程序员(技术角度) ,通过调研,结合经验,去客观的考虑要不要对这个系统升级,最后给出答复。
以下内容进针对所回复的项目,对于阅读者来说,仅供参考。
是否vue2升级vue3
建议升级。因为
1)项目会长期使用,而vue2早在2023年就停止了维护,node14 LTS 到2023年就停止维护了。而Vue3到目前为止,依旧在维护,到目前,至少还能再使用5年(参考vue2发布到维护截止7年),从长期收益来看,升级是值得的。
2) Vue的升级意味着依赖也需要升级,比如UI框架,当前版本的UI框架存在着一些不足,这些不足在高版本中其实都解决了的,而现在,我们只能自己用更多的代码,更麻烦的方式,弥补这些不足
3)尤雨溪吸取Vue2升级Vue3的教训,在后续Vue3升级Vue4将会更平滑[1],意味着我们只需要确保现在的项目是vue3,后续能低成本的进一步升级vue4
用什么方式升级
建议直接新建一个前端项目,然后一个模块一个模块迁移,至于vue2改写vue3,大部分工作可以交给AI改写代码,提高迁移效率
原因
1)如果 用插件升级,容易遇到各种奇奇怪怪的BUG,既留下了隐患,也让项目变得混乱。尤雨溪也承认了Vue3升级体验并没有想象中的那么流畅,迁移升级成本+风险较大[2]。
2)直接新建一个项目,可以重新制作标准(文件结构、命名、文档……),规范开发,旧项目的有些技术可以直接淘汰,换新技术上场。
3)得益于AI技术的成熟,结合旧项目代码+AI赋能,可以大大提高迁移效率。迁移同时还能让AI优化一下代码,让代码写法更简洁,比如采用setup语法糖。
4)保留旧项目分支,创建新项目分支,工作重心逐渐从旧项目转向新项目。开发,迁移两不误
注意
“新建一个项目”不一定是完全新建,现在的Admin前端框架十分的多,可以考虑基于某个Admin框架改,对接后端接口就好,布局,登录注册页这些就不用重写了。
新项目的技术方案
| 旧项目 | 新项目 | 说明 |
|---|---|---|
| Vue2 | Vue3 | |
| NodeJS V14LTS | NodeJS V22.15.0LTS | 选择最新的长期维护版本 |
| Ant Design Vue V1 | Ant Design Vue V4.2.6 | UI框架必须换的,换了之后,应该能解决表格长内容省略、列宽度缩放,日期选择只选择年等问题 |
| node-sass | DartSass | 旧项目锁Node14,NodeSass功不可没。Dart Sass作为官方实现,Dart Sass通常会更快地支持最新的Sass特性和语法更新。而NodeSass已经停止了维护 |
| Vite | Vite 是由 Vue.js 的作者尤雨溪开发的新一代前端构建工具,旨在提供快速的开发体验 | |
| Vuex V3 | Vuex V4 | 几乎所有的 Vuex 4 API 都与 Vuex 3 保持不变,这方面改动较小 |
参考资料
\[1\]“Vue 将随着吸取的经验不断发展,我们绝对不打算在未来的Vue4中,进行这样的破坏性重大升级。”——Vue2升级到Vue3到底是不是一个正确的选择?(尤雨溪亲自回复解读)这篇文章从实际应用角度出发,分析了Vue2到Vue - 掘金 (juejin.cn)
\[2\]Vue2到底要不要升级到Vue3(尤雨溪亲自回复解读) - 知乎 (zhihu.com)
补充
领导希望有一个共存的解决方案,
“
迁移模块的过程不是一个短的过程,可能要几个月,不可能一边闷头开发新的还一直维护老的。我希望新的前端可以尽快上线,这样可以展现新平台的优势。这就需要新旧并存很长一段时间,在这段时间内逐步完成迁移。
我指的共存是对最终用户来说,而不一定非得是在一个项目里
”
参考之前 参与的 两个 学工系统项目 的 重构升级。
相当于“插件化开发”,新系统是主体,旧系统是插件,可以通过新系统访问旧系统,用着旧系统某些功能先。
而新系统边迁移、完善,边调研用户需求,看看要迁移的板块有什么不足,需要优化、新增功能的,在迁移过程就直接优化了。
如果是全新的新功能,可以在新项目开发
只是维护的话,可以先迁移这个模块,然后维护
实在是没法迁移再维护的,那就现在旧项目维护吧,旧项目的BUG修好了,迁移到新项目也不会有太多问题

浙公网安备 33010602011771号