美文网首页程序员
vue路由懒加载

vue路由懒加载

作者: 会飞的猪bzy | 来源:发表于2018-03-15 23:21 被阅读0次

    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
    }
    

    分析

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

    其他

    在main.js里面项目的入口我们可以使用template的语法,也可以使用render函数

    new Vue({
      el: '#app',
      router,
      components: { App },
    
      /*
      * 这里使用的template的语法
      * 也可以使用render函数,直接return一个html结构
      */
      // template: '<App/>'
      render() {
    
        return (
          <div>
            <App></App>
          </div>
        )
      }
    
      
    })
    

    相关文章

      网友评论

        本文标题:vue路由懒加载

        本文链接:https://www.haomeiwen.com/subject/buikqftx.html