webpack懒加载和异步加载的区别
文章类型:webpack
发布者:hp
发布时间:2025-05-05
懒加载是按需加载资源,而异步加载是通过动态导入触发代码分割
本质:异步加载的应用层策略,通过条件判断(如路由切换、用户点击)触发模块加载
方式:
// Vue 路由懒加载
const Home = () => import(/* webpackChunkName: "Home" */ './Home.vue');
本质:Webpack 的底层机制,通过动态导入语法(import())触发代码分割,生成独立 chunk
方式:
// 动态导入触发异步加载
button.onclick = () => {
import('./utils').then(module => module.doSomething());
};
// 路由懒加载(依赖异步加载机制)
const AdminPanel = () => import(/* webpackPrefetch: true */ './AdminPanel.vue');
// 动态异步加载工具库
const loadAnalytics = () => import('./analytics');
// 用户触发时执行懒加载
document.getElementById('admin-btn').addEventListener('click', () => {
loadAnalytics().then(module => module.init());
AdminPanel().then(component => render(component));
});
1:懒加载侧重于降低首屏资源体积。提升首屏渲染速度
2:异步加载侧重于避免阻塞主线程,利用浏览器空闲时间加载资源,提升交互响应速度
懒加载=>用户行为触发后
异步加载=>执行到 import() 时立即加载
懒加载=>加载完成后自动渲染组件或执行逻辑
异步加载=>加载完成后需手动调用
懒加载=>按需加载,减少首屏请求量
异步加载=>提前加载非关键代码,可能增加并行请求数
1:懒加载是策略=>基于业务需求(如路由、交互)延迟加载资源,优化首屏体验
2:异步加载是机制=>Webpack 通过代码分割生成独立 chunk,支撑懒加载的实现