vue3中的Tree shaking

文章类型:Vue

发布者:admin

发布时间:2023-03-21

Vue3最重要的变化之一就是引入了Tree-Shaking,Tree-Shaking带来的bundle体积更小,所有的API都通过ES6模块化的方式引

一:是什么

是一种通过清除多余代码方式来优化项目打包体积的技术,专业术语叫 Dead code elimination,

就是在保持代码运行结果不变的前提下,找出使用的代码,去除无用的代码

dead code 条件

1.代码不会被执行,不可到达

2.代码执行的结果不会被用到

3.代码只会影响死变量(只写不读)

Vue2实例在项目中是单例的,捆绑程序无法检测到该对象的哪些属性在代码中被使用到,无用代码会被打包进代码中

import Vue from 'vue'

Vue.nextTick(() => {})

Vue3源码引入tree shaking,将全局 API 进行分块。如果不使用某些功能,将不会包含在包中

import { nextTick, observable } from 'vue'

nextTick(() => {})

二:如何做

基于ES6模板语法(import与exports),借助ES6模块的静态编译思想,在编译时就能确定模块的依赖关系,以及输入和输出的变量,编译阶段利用ES6 Module判断哪些模块已经加载,判断那些模块和变量未被使用或者引用,进而删除对应代码

三:作用

1:减少体积(更小)

2:减少执行时间(更快)

3:便于对程序架构进行优化(更友好)