vue router 路由懒加载
懒加载模式
大项目中,为了提高初始化页面的效率,路由一般使用懒加载模式,一共三种实现方式。
(1)第一种写法:
component: (resolve) => require(['@/components/One'], resolve)
(2)第二种写法:
component: () => import('@/components/Two')
这样:
const Index = () => import(/* webpackChunkName: "group-home" */ '@/views/index')
const routers = [
{
path: '/',
name: 'index',
component: Index
}
]
//PS:
group-home’ 是把组件按组分块打包, 可以将多个组件放入这个组中
/* webpackChunkName: "group-home" */ 是打包后文件名称,后面是文件路径。
//在build目录下找到webpack.prod.conf.js文件,将output修改为
output: { path: config.build.assetsRoot, filename: utils.assetsPath('js/[name].[chunkhash].js'),//文件格式,文件名.文件哈希 chunkFilename: utils.assetsPath('js/[name].[chunkhash].js')//文件切割后的文件名称。这里的name对应的就是路由中引入文件时候的webpackChunkName
}
(3)第三种写法:
components: r => require.ensure([], () => r(require('@/components/Three')), 'group-home')
栗子:或者这样
const Index = r => require.ensure([], () => r(require('./views/index')), 'group-home');
const routers = [
{
path: '/',
name: 'index',
component: Index
}
]
PS:
-
一般常用第二种简写
-
第三种中,’group-home’是把组件按组分块打包, 可以将多个组件放入这个组中,在打包的时候Webpack会将相同 chunk 下的所有异步模块打包到一个异步块里面。
路由正常模式:
// 1、先引入页面组件import Home from '@/components/Home'// 2、使用组件 { path: '/home', component: Home}
一辈子很短,努力的做好两件事就好;第一件事是热爱生活,好好的去爱身边的人;第二件事是努力学习,在工作中取得不一样的成绩,实现自己的价值,而不是仅仅为了赚钱;