Vue路由惰性加载

1,524 阅读1分钟
import Vue from 'vue'
import Router from 'vue-router'
import Home from './views/Home.vue'

Vue.use(Router)

export default new Router({
  mode: 'history',
  base: process.env.BASE_URL,
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home
    },
    {
      path: '/about',
      name: 'about',
      // route level code-splitting
      // this generates a separate chunk (about.[hash].js) for this route
      // which is lazy-loaded when the route is visited.
      component: () => import(/* webpackChunkName: "about" */ './views/About.vue')
    }
  ]
})

import Home from './views/Home.vue'
这样加载的路由组件是直接加载此组件

component: () => import(/* webpackChunkName: "about" */ './views/About.vue')
这样加载的路由组件是惰性加载此组件
这种调用组件的方式是根据路由等级来分割代码(code-splitting),它会为当前路由生成一个单独的块文件如:(about.[hash].js)这样的文件,同事还会生成同样的css文件,生成的文件名是由这句代码控制的(/* webpackChunkName: "about" */),双引号中的名称就是生成的文件的主名称,如不加这段注释文字就会以数字(从0开始)为文件的名称。