为什么需要懒加载?vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时需要加载的内容过多,时间过长,会长时间的白屏,即使做了loading也是不利于用户体验,而运用懒加载则可以将页面进行划分,需要的时候加载页面,可以有效的分担首页所承担的加载压力,减少首页加载用时。
1.懒加载(Vue异步组件技术)
// 路由 { path: \'/home\', name: \'home\', component: resolve => require([\'@/components/Home\'],resolve) } // 组件 components: { historyTab:resolve => { require([\'../../component/historyTab/historyTab.vue\'],resolve) }, },
2.webpack的require.ensure技术
{ path: \'/list\', name: \'List\', component: resolve => require.ensure([], () => resolve(require(\'../components/List\')), \'chunkName\') }
//多个路由指定相同的chunkName,会合并打包成一个js文件
3.es6的import
// 下面2行代码,没有指定webpackChunkName,每个组件打包成一个js文件 const Demo1 = () => import(\'@/components/Demo1\') const Demo2 = () => import(\'@/components/Demo2\') // 下面2行代码,指定了相同的webpackChunkName,会合并打包成一个js文件。 // const Demo1 = () => import(/* webpackChunkName: \'Demo1\' */ \'../components/Demo1\') // const Demo2 = () => import(/* webpackChunkName: \'Demo1\' */ \'../components/Demo2\') export default new Router({ routes: [ { path: \'/demo1\', name: \'Demo1\', component: Demo1 }, { path: \'/demo2\', name: \'Demo2\', component: Demo2 } ] })