Skip to content

组件库按需加载

概述

组件库按需加载: 组件库以组件为基本单位产出 js、css、less 文件,借助插件或者部分引入的写法,使得项目代码或 babel 编译后的代码中只包含使用到的组件的 js、css、less 等

webpack 懒加载(也称为代码分割或动态导入): webpack 将源码中的 import、require 引入的文件编译之后再根据动态加载语法配置(通常以页面路由为基本单位)将较大的代码拆分并构建出较小的 chunk 包,应用在运行时执行到相应业务逻辑时才去加载执行对应 chunk 代码

总结:按需加载时在构建的时候,就去掉了不需要的代码,而懒加载是通过编译标识动态加载点延迟代码的加载时间,

基本原理

原理主要是基于动态导入模块打包工具(如 Webpack、Rollup 等)的特性来实现。 其主要目标是优化前端应用的性能,通过只加载当前页面或功能所需的部分组件代码,避免一次性加载整个组件库导致的资源浪费和初始加载时间过长。

方案一:手动引入

手动引入需要使用到的组件以及其对应的样式文件即可,借助 webpack 构件时组件库中其他未被引入的文件不会被打包(Tree Shaking 技术)

js
import ComponentBtn from "vant/lib/Componentbtn";
import "vant/lib/Componentbtn/style";

方案二:自动加载

使用插件自动引入就是插件帮我们把引入组件的写法进行了转换,最后转换成了方案一中手动加载方式的写法

js
// 源代码
import { Button } from "vant";

// 借助 babel-plugin-import 转换为
import "vant/es/button/style";
import _Button from "vant/es/button";

参考文献

Released under the MIT License.