vue中路由懶加載和組件懶加載

一、為什么要使用路由懶加載
  為給客戶更好的客戶體驗(yàn),首屏組件加載速度更快一些,解決白屏問(wèn)題。
二、定義
  懶加載簡(jiǎn)單來(lái)說(shuō)就是延遲加載或按需加載,即在需要的時(shí)候的時(shí)候進(jìn)行加載。
三、使用
  常用的懶加載方式有兩種:即使用vue異步組件 和 ES中的import
1、未用懶加載,vue中路由代碼如下

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
                  }
                ]
              })

2、vue異步組件實(shí)現(xiàn)懶加載

方法如下:component:resolve=>(require(['需要加載的路由的地址']),resolve)

import Vue from 'vue'
import Router from 'vue-router'
  /* 此處省去之前導(dǎo)入的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、原來(lái)組件中寫法

<template>
  <div class="hello">
  <One-com></One-com>
  </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>
  </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>
  </div>
</template>

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

總結(jié)

路由和組件的常用兩種懶加載方式:

1、vue異步組件實(shí)現(xiàn)路由懶加載

component:resolve=>(['需要加載的路由的地址',resolve])

2、es提出的import(推薦使用這種方式)

const HelloWorld = ()=>import('需要加載的模塊地址')

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、什么是懶加載 懶加載也叫延遲加載,即在需要的時(shí)候進(jìn)行加載,隨用隨載。 二、為什么需要懶加載 在單頁(yè)...
    菲菲菲菲妞閱讀 22,290評(píng)論 0 10
  • ## 框架和庫(kù)的區(qū)別?> 框架(framework):一套完整的軟件設(shè)計(jì)架構(gòu)和**解決方案**。> > 庫(kù)(lib...
    Rui_bdad閱讀 3,158評(píng)論 1 4
  • 前戲 為什么需要懶加載? 對(duì)于vue這種spa,首次加載的模塊/組件太多,導(dǎo)致響應(yīng)時(shí)間太長(zhǎng),造成白屏。即使添加lo...
    空杯成長(zhǎng)筆記閱讀 1,481評(píng)論 0 0
  • Vue八個(gè)生命周期 beforeCreate【創(chuàng)建前】created【創(chuàng)建后】 beforeMount【載入前】 ...
    艾薩克菊花閱讀 1,446評(píng)論 0 12
  • 導(dǎo)航守衛(wèi) 正如其名,vue-router提供的導(dǎo)航守衛(wèi)主要用來(lái)通過(guò)跳轉(zhuǎn)或取消的方式守衛(wèi),有多種機(jī)會(huì)植入路由導(dǎo)航過(guò)程...
    前端_周瑾閱讀 1,372評(píng)論 0 4

友情鏈接更多精彩內(nèi)容