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