Vue.js 3.x 优化概览

本文介绍了Vue.js 3.x的主要优化,包括源码管理方式的改进,如采用monorepo模式提升代码可维护性,以及使用TypeScript增强类型检查。在性能优化方面,通过源码体积减小、tree-shaking技术和数据劫持的响应式实现方案提升性能。此外,Vue.js 3.0还引入了Composition API以优化逻辑组织和复用。
摘要由CSDN通过智能技术生成

1. Vue.js框架的演进过程

Vue.js 从 1.x 到 2.0 版本,最大的升级就是引入了虚拟 DOM 的概念。

image-20220412212335522

Vue.js 2.x 的版本痛点问题:

  • 源码自身的维护性;
  • 数据量大后带来的渲染和更新的性能问题;
  • 鸡肋 API;
  • TypeScript 支持不佳;

Vue.js 3.x 带来的优化

  • 源码优化

  • 性能优化

  • 语法Api优化

    image-20220412212300757

2. Vue.js 3.0 优化概览

那么接下来,我们就一起来看一下 Vue.js 3.0 具体做了哪些优化。

2.1 源码优化

首先是源码优化,也就是祖师爷对于 Vue.js 框架本身开发的优化,它的目的是让代码更易于开发和维护。

源码的优化主要体现在使用 monorepoTypeScript 管理和开发源码,这样做的目标是提升自身代码可维护性。接下来我们就来看一下这两个方面的具体变化。

2.1.1 更好的代码管理方式:monorepo
  1. 什么是monorepo?

就是把多个项目放在一个仓库里面,相对立的是传统的 MultiRepo 模式,即每个项目对应一个单独的仓库来分散管理。

img

  1. monorepo 解决什么问题?
    • 多个repo难以管理,编辑器需要打开多个项目;

    • 某个模块升级,依赖改模块的其他模块需要手动升级,容易疏漏;

    • 公用的npm包重复安装,占据大量硬盘容量,比如打包工具webpack会在每个项目中安装一次;

    • 对新人友好,一句命令即可完成所有模块的依赖安装,且整个项目模块不用到各个仓库去找;

  2. monorepo 在vue.js 3.x 中的应用

源码的优化体现在代码管理方式上。

Vue.js 2.x 的源码托管在 src 目录,然后依据功能拆分出了

  • compiler(模板编译的相关代码)
  • core(与平台无关的通用运行时代码)
  • platforms(平台专有代码)
  • server(服务端渲染的相关代码)
  • sfc(.vue 单文件解析相关代码)
  • shared(共享工具代码)

等目录:

Drawing 0.png

而到了 Vue.js 3.0 ,整个源码是通过 monorepo 的方式维护的,根据功能将不同的模块拆分到 packages 目录下面不同的子目录中:

Drawing 1.png

可以看出相对于 Vue.js 2.x 的源码组织方式,monorepo 把这些模块拆分到不同的 package 中,每个 package 有各自的 API、类型定义和测试。

这样做的优势在于:

  • 使得模块拆分更细化,职责划分更明确,模块之间的依赖关系也更加明确
  • 开发人员也更容易阅读、理解和更改所有模块源码,提高代码的可维护性。
  • 一些 package(比如 reactivity 响应式库)是可以独立于 Vue.js 使用的,这样用户如果只想使用 Vue.js 3.0 的响应式能力,可以单独依赖这个响应式库而不用去依赖整个 Vue.js,减小了引用包的体积大小,而 Vue.js 2 .x 是做不到这一点的。

参考资料:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值