返回
代码精简,优化项目:在动态组件引入中,你该知道这些事
前端
2024-01-18 21:09:21
**代码精简:在动态组件引入中,你该知道这些事**
**## 前言**
构建大型项目时,从某个角度考量,它会对代码的体积产生重大的影响。一个简单的库可能是几百个字节,而且使用 Tree Shaking 技术后,它还可以被缩小到只有几百个字节。但对于超大型应用来说,这样做是远远不够的,而且,还有更重要的限制。
超过90%的应用程序代码都由第三方库组成。这些库包含了从图表到状态管理等,将这种内容从应用程序中分离出来,并按需加载,有着非常大的好处,因为你会同时节省了下载和执行的开销。
**## 场景:**
以前,我们每引入一个组件时,就是在script内部进行import引入,但,如你所见,组件产生的越来越多,我们总不能够这样引入,于是乎,我们可以使用动态import引入。
**步骤 1:安装依赖**
使用 npm 包管理器来安装:
```
npm install --save dynamic-import
```
**步骤 2:引入库**
在主应用程序中引入库:
```
import dynamic from "dynamic-import"
```
**步骤 3:加载组件**
```
dynamic('./path/to/module').then(module => {
console.log("Successfuly loaded module", module);
}).catch(err => {
console.log("Loading module failed", err);
});
```
**步骤 4:使用组件**
一旦模块加载成功,你可以像这样来使用:
```
let module = await dynamic('./path/to/module');
let OtherModule = module.OtherModule;
```
**步骤 5:使用 lazy 函数**
除了像之前提的那样使用模块,你还可以使用 lazy 函数,因此,你可以在某个地方加载并执行组件,而在其他地方创建并使用它。
```
let lazy = dynamic.dynamic('./path/to/module');
let module = await lazy();
let OtherModule = module.OtherModule;
```
**## 结论**
有了这个,我们只需要引入一个对象,就能解决掉很多代码冗余,而且,连项目的部署,我们也只需要引入这个对象。
同样,对于这种组件引入优化的策略,你还有其他什么好的方式呢?可以在下方留言区留言,和其他的小伙伴,进行一场激烈的讨论吧!
## **最后**
我的这篇文章是如何在 vue 项目中优化代码。如何你有疑问,尽管留言,我一定第一时间解答你!