Vue 2.0 与Vue 3.0的 对比

一、VUE2.0和3.0的优缺点

  • 2.0优点:可以兼容IE9及以上版本

  • 3.0优点:

  1. composition api相比较属性方法,有着更强的代码组织性和复用性

  2. 监听方式升级,在代码方面,可以规避一些未知的数据绑定和渲染问题,提升开发效率

  3. 重构了virtual DOM,体积更小,组件渲染决定权交与组件,使用方式更灵活,性能更好

  4. 底层使用ts,增加数据类型强校验,可以使用ts功能,增强代码的可读性和可维护性

  5. 新的构建工具支持(vite 新一代构建工具,速度极快,引领趋势)

  6. 打包体积更小、初始渲染速度、开发热更新速度、内存占用、性能优化等

详见官方说明: https://v3.cn.vuejs.org/guide/migration/introduction.html#%E5%80%BC%E5%BE%97%E6%B3%A8%E6%84%8F%E7%9A%84%E6%96%B0%E7%89%B9%E6%80%A7

二、组件化是否必须用3.0?

  1. 不一定,如果不考虑IE兼容性问题,推荐使用3.0

  2. Vue 3.0 与新一代前端构建工具 Vite 绑定,相比2.0的构建工具,大型工程,启动、热更新、构建均提效明显,Vite官方默认只支持 Vue 3.0,Vue2.0使用时需要引入非官方插件 vite-plugin-vue2,但是没有覆盖到所有的场景(有坑)

vue3.0与vue2.0 对应的官方默认构建工具 Vite 与 @vue/cli 对比

a、示例 Hello world 工程 -- 运行机器 MacBook Pro (16-inch, 2019)

工具 冷启动 热更新 构建
Vite 194ms 29ms 4.87s
@vue/cli 2399ms 191ms 9.00s

注:由于 vite 将原生编译交给浏览器,此处热更新统计的为变化文件传输时间,@vue/cli 的热更新统计的为变化文件编译及依赖树更新的时间

b、示例 中等复杂工程对比,来自开源项目,35个页面

工具 冷启动 热更新 构建
Vite 15122ms 101ms 47.39s
@vue/cli 58328ms 788ms 60.02s

三、其它测评

参考文档;https://segmentfault.com/a/1190000041263260

3、2.0升级到3.0的成本

1)2.0到3.0的升级,如果完全使用vue3.0的语法,90%以上的代码需要重构;

2)vue相关框架也存在一些非兼容的变更,例如Vue Router、vuex

3)如果不考虑语法迁移,重点要考虑一些依赖组件库的破坏性,需要升级支持vue3.0的组件,并且做相应的组件库使用调整

  1. 采用Vue服务端渲染 Nuxt 的项目,暂时处于 beta 版本

5)3.0版本不是很稳定,最近十几天也处于频繁更新的状态,而2.0已经超过1年没有发布新版本了

6)衍生框架如微前端等默认支持2.0,对3.0的支持力度不高

详见官方说明:https://v3.cn.vuejs.org/guide/migration/migration-build.html#overview

四、结论概括

功能实现方面,2.0与3.0是相互可替代,不存在3.0实现的功能2.0无法实现的场景;

3.0的性能及新开发范式支持相对2.0有较大提升,开发效率及程序性能均会提升

3.0不支持IE11,3.0的能力生态补齐中,目前较2.0存在差距

3.0取代2.0的预计,由于2.0项目非常多,预计两版本的使用会较长时间并存

3.0与2.0项目无法兼容,2.0升级到3.0成本比较大,除工程本身升级外,还依赖三方库提供3.0版本

五、建议

如支持IE11非必须,新项目采用 vue3.0 技术栈,打造 vue 3.0 组件库;

目前已有2.0工程升级到3.0成本高、有风险,不建议升级

如需支持IE11,采用Vue 2.0

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容