返回

代码精简,优化项目:在动态组件引入中,你该知道这些事

前端

    **代码精简:在动态组件引入中,你该知道这些事** 

    **## 前言** 

    构建大型项目时,从某个角度考量,它会对代码的体积产生重大的影响。一个简单的库可能是几百个字节,而且使用 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 项目中优化代码。如何你有疑问,尽管留言,我一定第一时间解答你!