vue实现惰性加载是基于:
1.ES6的异步机制
components: {
comp: (resolve, reject) => {}
}
2. webpack的代码分割功能
require.ensure(依赖, 回调函书, [chunk名字])
************************
懒加载方法一、
//此时每个组件单独使用的js会单独在一个文件里加载,每个文件加载一次
let Layout = (resolve) => {
return require.ensure([], () => {
resolve(require('@/views/layout'))
})
}
若需要将相同功能的组件捆绑进行懒加载,则需为捆绑添加chunk名字,如下:
//此时会将user与login的js文件捆绑在一起,加载一次
const user= (resolve) => {
return require.ensure([], () => {
resolve(require('@/components/user'))
}, 'inter')
}
const login= (resolve) => {
return require.ensure([], () => {
resolve(require('@/components/login'))
}, 'inter')
}
懒加载方法二:
//利用webpack自带的import函数按需加载相应的组件
let user= (resolve) => {
return import('@/components/user')
}
配置部分则不需要改变,常规配置即可:
var router = new Router({
mode: 'history',
routes: [
{
path: '/user',
name: 'user',
component: user
}]
})