Vue路由的懒加载深入详解

发布时间:

这篇文章主要介绍了vue-router路由懒加载及实现方式,路由懒加载的主要作用是将 路由对应的组件打包成一个个的js代码块,只有在这个路由被访问到的时候,才会加载对应组件的代码块,需要的朋友可以参考下!

一、概念

官方描述:

当打包构建应用时,Javascript包会变得非常大,影响页面加载。

如果我们能把不同路由对应的组件分割成功不同的代码块,然后当路由被访问的时候才加载对应组件,这样就更加高效了。

解析:

路由中通常会定义很多不同的页面,这些页面打包后被放在一个js文件中,但是这么多页面放在一个js文件中必然会造成页面非常大。如果我们一次性从服务器上请求下来这个页面,可能需要花费一定的时间,甚至用户的电脑上还可能会出现短暂的空白情况,使用路由的懒加载就可以避免这种情况了。

路由懒加载做了什么?

主要作用就是将路由对应的组件打包成一个个的js代码块,只有在这个路由被访问的时候才加载对应的组件。

二、代码实现

普通写法:

import Home from '../components/Home'
import About from '../components/About'
Vue.use(VueRouter)
const routes = [
	{
		path: '/home',
		component: Home
	},
	{
		path: '/about',
		component: About 
	}
]

路由懒加载写法:

import Home from '../components/Home'
import About from '../components/About'
Vue.use(VueRouter)
const routes = [
	{
		path: '/home',
		component: () => import('../components/Home')
	},
	{
		path: '/about',
		component: () => import('../components/About')
	}
]

三、打包文件的解析

执行打包的命令 npm run build

Vue路由的懒加载深入详解

app.xxxx.js 当前应用程序开发的所有代码(业务代码)

manifest.xxxx.js 为打包的代码做底层支撑的(为模块化...做底层支撑) vendor.xxxx.js vendor(提供者,第三方依赖包vue,vue-loader,...)

当使用了路由懒加载后打包

Vue路由的懒加载深入详解

用到了两个路由懒加载,多分出了两个js文件。这两个js文件不会一开始就从服务器上请求下来,它会等我们真正需要用的时候再请求下来。