vue -- 路由懒加载

vue的路由懒加载

我们可以把不同路由对应的组件分割成不同的代码块,然后当路由被访问的时候才加载对应组件。

  1. component可以是一个箭头函数,我们可以使用动态 import语法来定义代码分块点;
  2. 如果想在network里面看到动态加载的组件名字,可以加webpackChunkName
  3. 同时要在webpack.base.conf.js里面的output里面的filename下面加上chunkFileName;

// router里面的index.js
import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'home',
      /* 
       *  使用动态组件,component可以是一个箭头函数
       *  @表示src目录
       *  如果想在network里面看到动态加载的组件名字,可以加webpackChunkName,同时要在webpack.base.conf.js里面的output里面的filename下面加上chunkFileName
       *  network里面动态加载模块名称
       */
      component: () => import(/* webpackChunkName: 'home' */'@/pages/Homes')
    },
    {
      path: '/todos',
      name: 'Todos',
      component: () => import(/* webpackChunkName: 'todo' */'@/pages/Todos')
    }
  ]
})

注意 上面的@代表当前src目录,具体可以去参考webpack的配置;

webpack.base.conf.js里面添加 chunkFilename: '[name].js'

output: {
  path: config.build.assetsRoot,
  filename: '[name].js',
  // 需要配置的地方
  chunkFilename: '[name].js',
  publicPath: process.env.NODE_ENV === 'production'
    ? config.build.assetsPublicPath
    : config.dev.assetsPublicPath
}

猜你喜欢

转载自www.cnblogs.com/yuerdong/p/9143850.html