vue 路由懒加载和组件懒加载

一、为什么要使用路由懒加载

为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题。

二、定义

懒加载也叫做延时加载,在网页响应时不立刻请求资源,待页面加载完毕或者按需响应时再加载资源,以达到提高页面响应速度以及节省服务器资源的谜底。网页中常用的懒加载是图片的懒加载,对于类似淘宝一样的多图页面,如果等待所有图片都下载完成再响应用不必然造成页面加载的卡顿。对于JS资源的加载也是同样的道理,大JS的加载会造成JS阻塞,页面出现停止响应的假死状态。因此可以通过按需加载的方式,提高页面首屏的加载速度。

三、使用

常用的懒加载方式有两种:即使用vue异步组件ES中的import

  1. 未用路由懒加载,代码如下
                import Vue from 'vue'
                import Router from 'vue-router'
                import HelloWorld from '@/components/HelloWorld'
                Vue.use(Router)
                export default new Router({
                  routes: [
                    {
                      path: '/',
                      name: 'HelloWorld',
                      component:HelloWorld
                    }
                  ]
                })
  1. 异步组件使用路由懒加载,
    方法如下:component:resolve=>(require(['需要加载的路由的地址']),resolve)
    代码如下
import Vue from 'vue'
import Router from 'vue-router'
  /* 此处省去之前导入的HelloWorld模块 */
Vue.use(Router)
export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component: resolve=>(require(["@/components/HelloWorld"],resolve))
    }
  ]
})

3、ES 提出的import方法,(------最常用------)
方法如下:const HelloWorld = ()=>import('需要加载的模块地址')(不加 { } ,表示直接return)
代码如下

import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

const HelloWorld = ()=>import("@/components/HelloWorld")
export default new Router({
  routes: [
    {
      path: '/',
      name: 'HelloWorld',
      component:HelloWorld
    }
  ]
})

四、组件懒加载

1、原来组件中写法




2、const方法




3、异步方法




五、总结:

路由和组件的常用两种懒加载方式:
1、vue异步组件实现路由懒加载
  component:resolve=>(['需要加载的路由的地址',resolve])
2、es提出的import(推荐使用这种方式)
  const HelloWorld = ()=>import('需要加载的模块地址')

你可能感兴趣的:(vue 路由懒加载和组件懒加载)