Vue.js设计与实现:框架设计的核心内容

本文探讨了Vue 3.0中如何通过_tree-shaking_技术来缩小代码体积,避免在生产环境中不必要的资源加载。讲解了warn函数的检查机制和如何利用ESM模块的特性实现Tree-Shaking,以降低构建后的资源消耗。
摘要由CSDN通过智能技术生成

在讲解之前,我首先声明一点,这文章是Vue.js设计与实现部分内容,我推荐大家买这本书,同时也买这本书,这本书是霍春阳编写的,也是框架设计者老大哥推荐的。

框架的大小也是衡量框架的标准之。在实现同祥功能的情况下,当然是用的代码越少越好,这样体积就会越小,最后浏览器加载资源的时间也就越少。这时我们不禁会想,提供越完善的数在信息就意味着我们要端写更多的代码,这不是与控制代码体积相悖吗?没错,所以我们要想办法解决这个问题。
        当我们去看Vue3.js的源码你会发现一个神奇的事情那就是,每一个warn函数的调用都会配合_DEV_常量的检查.

if(__dev__&&!res){

warn:('Failed to mount app:.....')

}

如果我们用console.log进行打印,那肯定是true,但是假设说,我们把dev替换成所谓的false,就永远不会被执行,判断条件永远为假.

通过以上来看,虽然说通过构建工具预定义的常量_DEV_,能够在生产环境中使得框架不包含用于打印框架警告信息的代码,从用户角度来看,这么做这是仍然不够的,我们继续用Vue.js做例子,Vue.js建了很多组件,,例如<Transition>组件,如果我们的项目中根本就没有用到该组件,那么它的代码需要包含在项目最终的构建资源中吗?答案是"当然是不需要",那么如何做到这一点?这就不得不提到本节的主角Tree-Shaking.

什么是Tree-Shaking呢?在前端领域,这个概念因rollup.js而普及.简单地说,Tree-Shaking指的就是消除永远不被执行的代码,也就是排除dead code,现在无论是rollup.js还是webpack,都支持Tree-Shaking.

想要实现Tree-Shaking,必须满足一个条件,模块必须是ESM(ES Module),因为Tree-Shaking依赖ESM的静态结构,我们以rollup,js为例看看Tree-Shaking如何工作

demo

---------package.json

---------input.js

---------utils.js

首先需要安装rollup.js 

yarn add rollup -D

或者 npm i(install) rollup -D

详情见本书15页

后期我们会继续更新.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼程序员

你的鼓励将是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值