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

2018-11-02  本文已影响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

上一篇下一篇

猜你喜欢

热点阅读