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