vue 路由懒加载,组件异步加载

本文介绍如何使用Vue异步组件和webpack的require.ensure()来优化Web应用的首屏加载速度,通过按需加载减少初次加载时间,提升用户体验。

用于缓解首屏加载缓慢

1. vue异步组件

 vue-router配置路由 , 使用vue的异步组件实现按需加载

{ 
    path: '/home',
    name: 'Home', 
    component: resolve => require(['@/components/home'],resolve) 
},

2. webpack 的 require.ensure() 

vue-router配置路由,使用webpack的require.ensure,也可实现

require.ensure()接受三个参数:

语法: require.ensure(dependencies: String[], callback: function([require]), [chunkName: String]) 

    • dependencies: 依赖的模块数组
    • callback: 回调函数,该函数调用时会传一个require参数
    • chunkName: 模块名,用于构建时生成文件时命名使用
{ 
    path: '/home',
    name: 'home',
    component: r => require.ensure([], () => r(require('@/components/home')), 'chunk') 
    // r就是resolve
    // 'chunk' 表示包名,相同的 chunk 名 会被打包到一起
},

甚至,可以在加载过程中执行 loading 图

{
   path: '/hello',
   name: 'Hello',
   component (r){ 
     console.log('切换')
     // 开始加载 loading
     require.ensure([], (require) => { 
        r(require('@/components/HelloWorld')) 
     }) 
     console.log('切换完成')
     // 关闭 loading
   },
},

 

-- end --

转载于:https://www.cnblogs.com/_error/p/11095702.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值