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}

 

posted @ 2019-12-10 16:55  我自是年少  阅读(564)  评论(0编辑  收藏  举报