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、原來組件中寫法

<template>
 <div class="hello">
 <One-com></One-com>
 1111
 </div>
</template>

<script>
import One from './one'
export default {
 components:{
  "One-com":One
 },
 data () {
  return {
   msg: 'Welcome to Your Vue.js App'
  }
 }
}
</script>

2、const方法

<template>
  <div class="hello">
  <One-com></One-com>
  1111
  </div>
</template>

<script>
const One = ()=>import("./one");
export default {
  components:{
    "One-com":One
  },
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  }
}
</script>

3、異步方法

<template>
  <div class="hello">
  <One-com></One-com>
  1111
  </div>
</template>

<script>
export default {
  components:{
    "One-com":resolve=>(['./one'],resolve)
  },
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  }
}
</script>

五、總結:

路由和組件的常用兩種懶加載方式:
1、vue異步組件實現路由懶加載
  component:resolve=>(['需要加載的路由的地址',resolve])
2、es提出的import(推薦使用這種方式)
  const HelloWorld = ()=>import('需要加載的模塊地址')

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容