美文网首页
vue import 和 resolve => { }懒加载的区

vue import 和 resolve => { }懒加载的区

作者: 程序萌 | 来源:发表于2018-11-02 11:34 被阅读0次
    • 路由两种懒加载写法
     {
                path: '/about',
                name: '关于我们',
                // 路由懒加载 两种写法
                // component: resolve => require(['../components/second.vue'], resolve),
                // ES6写法
                component: () => import('@/components/about.vue')
            },
    
    import Vue from 'vue'
    import Router from 'vue-router'
    import Home from '@/components/home'
    
    //上面直接引入模块方式,页面初始化全部加载
    
    //第一种方式
    //例如原本:import Layout from '@/views/layout'
    let Layout = ( resolve ) => {
        return require.ensure( [], () => {
            resolve( require( '@/views/layout' ) )
        } )
    }
    let Project = ( resolve ) => {
        return require.ensure( [], () => {
            resolve( require( '@/views/backend/project' ) )
        } )
    }
    
    //第二种方式
    let Doc = ( resolve ) => {
        return import ( '@/views/backend/doc' )
    }
    let Workbench = ( resolve ) => {
        return import ( '@/views/backend/workbench' )
    }
    
    /*
    区别:
      1、require是由webpack社区提供方案,import为es6官方提供;
      2、使用1、require方式可以将多个模块js组合分割打包,
         require下面方法ensure第一个参数是依赖,如果不需要请写[](空数组)
         而import只能将每个模块独立打包成一个js文件;
         也就是说,如果现在有三个导航A、B、C,你现在用require可以将A单独分割出来做懒加载,进入a模块只请求A,
         B和C你可以组合在一起进行分割,进入B和C将加载共同一个文件;
      例如:
        let Doc = (resolve) => {
          return require.ensure([], () => {
            resolve(require('@/views/backend/doc'))
          }, "abc")
        }*//*
        let Workbench = (resolve) => {
          return require.ensure([], () => {
            resolve(require('@/views/backend/workbench'))
          }, "abc")
        }
    

    如果遇到使用import 报错,需要安装babelrc

    相关文章

      网友评论

          本文标题:vue import 和 resolve => { }懒加载的区

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