vue路由懒加载

vue的路由懒加载

咱们能够把不一样路由对应的组件分割成不一样的代码块,而后当路由被访问的时候才加载对应组件。javascript

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

代码html

// 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的配置vue

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

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

分析

建立了home和todos两个组件使用了路由懒加载,配置好以后咱们执行npm run dev来运行项目,打开network以后刷新一下,咱们会发现加载了home.js,咱们会发现和上面定义的webpackChunkName名字同样,同时点todos会加载todo.js。这就是路由懒加载的简单使用。webpack

其余

在main.js里面项目的入口咱们能够使用template的语法,也能够使用render函数web

new Vue({
  el: '#app',
  router,
  components: { App },

  /*
  * 这里使用的template的语法
  * 也能够使用render函数,直接return一个html结构
  */
  // template: '<App/>'
  render() {

    return (
      <div>
        <App></App>
      </div>
    )
  }

  
})
相关文章
相关标签/搜索