欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue3 異步組件 suspense使用詳解

 更新時(shí)間:2022年12月28日 16:25:05   作者:_Rookie._  
vue在解析我們的組件時(shí), 是通過打包成一個(gè) js 文件,當(dāng)我們的一個(gè)組件 引入過多子組件是,頁(yè)面的首屏加載時(shí)間 由最后一個(gè)組件決定 優(yōu)化的一種方式就是采用異步組件,這篇文章主要介紹了Vue3 異步組件 suspense,需要的朋友可以參考下

vue在解析我們的組件時(shí), 是通過打包成一個(gè) js 文件,當(dāng)我們的一個(gè)組件 引入過多子組件是,頁(yè)面的首屏加載時(shí)間 由最后一個(gè)組件決定 優(yōu)化的一種方式就是采用異步組件 ,先給慢的組件一個(gè)提示語(yǔ)或者 骨架屏 ,內(nèi)容回來在顯示內(nèi)容

結(jié)合elementui 使用

代碼  

<template>
  <div class="layout">
    <h1>suspense</h1>
    <Suspense>
        <template #default>
            <sus></sus>
        </template>
        <template #fallback>
              <copyVue/>
        </template>
    </Suspense>
  </div>
</template>
<script lang="ts" setup>
import { defineAsyncComponent } from "vue";
import copyVue from "./sus/copy.vue";
let sus = defineAsyncComponent(() => import("./sus/index.vue"));
</script>
<style scoped lang="scss">
 $bg:#ccc;
 .layout{
    width: 800px;
    height: 400px;
    background-color: $bg;
    margin: auto;
 }
</style>

引入  defineAsyncComponent   定義異步組件 ,這個(gè)api 接收 一個(gè) 一個(gè)函數(shù) ,函數(shù)返回值 為 需要 后來顯示的組件  , copyVue 為預(yù)先顯示的組件 或者自定義內(nèi)容 

 <Suspense>
        <template #default>
            <sus></sus>
        </template>
        <template #fallback>
              <copyVue/>
        </template>
    </Suspense>

使用 suspense  內(nèi)置組件 在該組件內(nèi) 使用 命名插槽 官方 定義的   

  #default  放后來顯示的組件

 #fallback  放置 預(yù)先顯示的內(nèi)容

要想組件變成異步 組件 可以使用 頂層 await 技術(shù)  即 不用再 async 函數(shù)內(nèi)使用 那個(gè)該組件就變成 異步組件 代碼

<template>
    <div class="sus">
        <img class="img" :src="res.url" alt="">
        <h1 class="posi">{{res.name }}</h1>
        <h1 class="posi">{{ res.des }}</h1>
    </div>
</template>
<script lang="ts" setup>
import axios from 'axios'
import './com.scss'
let fn = ()=>{
    return new Promise(  (resolve,reject)=>{
         setTimeout(async() => {
            resolve(axios.get('/data.json'))
         }, 2000);
    })
 }
 let {data:{data:res}}:any =  await   fn()
  console.log(res);
</script>
<style scoped lang='scss'>
 
.sus{
    width: 100%;
    height: 200px;
    background-color: #999;
}
 
</style>

copyvue

<template>
    <div  v-loading="loading" element-loading-text="加載中..." 
    element-loading-background="rgba(122, 122, 122, 0.8)" class="sus">
    </div>
</template>
<script lang="ts" setup>
import axios from 'axios'
import { ref } from 'vue'
const loading = ref(true)
</script>
<style scoped lang='scss'>
.sus{
    width: 100%;
    height: 200px;
}
 
</style>

scss

.posi{
    height: 50px;
    background-color: rgb(209, 136, 136);
    margin-top: 20px;
 }
 .img{
     width: 30px;
     height: 30px;
     background-color: rgb(113, 52, 52);
 }

 public 下的 data.json 

{
    "data":{
         "name":"你好世界",
         "url":"./favicon.ico",
         "des":"世界是個(gè)荒原"
    }
}

public 下的  內(nèi)容 回當(dāng)成 服務(wù)的  '/xxx' 請(qǐng)求路徑  get可以請(qǐng)求 到文件內(nèi)容

http://localhost:5173/data.json

到此這篇關(guān)于Vue3 異步組件 suspense的文章就介紹到這了,更多相關(guān)Vue3 異步組件 suspense內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Antd Table表頭加Icon和氣泡提示的坑

    解決Antd Table表頭加Icon和氣泡提示的坑

    這篇文章主要介紹了解決Antd Table表頭加Icon和氣泡提示的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • useEffect理解React、Vue設(shè)計(jì)理念的不同

    useEffect理解React、Vue設(shè)計(jì)理念的不同

    這篇文章主要為大家介紹了useEffect理解React、Vue設(shè)計(jì)理念的不同詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • element-ui 限制日期選擇的方法(datepicker)

    element-ui 限制日期選擇的方法(datepicker)

    本篇文章主要介紹了element-ui 限制日期選擇的方法(datepicker),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • vue項(xiàng)目查看vue版本及cli版本的實(shí)現(xiàn)方式

    vue項(xiàng)目查看vue版本及cli版本的實(shí)現(xiàn)方式

    這篇文章主要介紹了vue項(xiàng)目查看vue版本及cli版本的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • Vue.js中自定義Markdown插件實(shí)現(xiàn)References解析(推薦)

    Vue.js中自定義Markdown插件實(shí)現(xiàn)References解析(推薦)

    本文主要寫的是,如何編寫一個(gè)插件來解析<references>標(biāo)簽,并將其轉(zhuǎn)換為HTML,這種方法可以應(yīng)用于其他自定義標(biāo)簽和功能,為Vue.js應(yīng)用程序中的Markdown渲染提供了極大的靈活性,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • vue 遮罩層阻止默認(rèn)滾動(dòng)事件操作

    vue 遮罩層阻止默認(rèn)滾動(dòng)事件操作

    這篇文章主要介紹了vue 遮罩層阻止默認(rèn)滾動(dòng)事件操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue實(shí)現(xiàn)導(dǎo)出Excel表格文件提示“文件已損壞無(wú)法打開”的解決方法

    Vue實(shí)現(xiàn)導(dǎo)出Excel表格文件提示“文件已損壞無(wú)法打開”的解決方法

    xlsx用于讀取解析和寫入Excel文件的JavaScript庫(kù),它提供了一系列的API處理Excel文件,使用該庫(kù),可以將數(shù)據(jù)轉(zhuǎn)換Excel文件并下載到本地,適用于在前端直接生成Excel文件,這篇文章主要介紹了Vue實(shí)現(xiàn)導(dǎo)出Excel表格,提示文件已損壞,無(wú)法打開的解決方法,需要的朋友可以參考下
    2024-01-01
  • vue項(xiàng)目依賴升級(jí)報(bào)錯(cuò)處理方式

    vue項(xiàng)目依賴升級(jí)報(bào)錯(cuò)處理方式

    這篇文章主要介紹了vue項(xiàng)目依賴升級(jí)報(bào)錯(cuò)處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue開發(fā)table數(shù)據(jù)合并實(shí)現(xiàn)詳解

    vue開發(fā)table數(shù)據(jù)合并實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了vue開發(fā)table數(shù)據(jù)合并實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Vue代碼分割懶加載的實(shí)現(xiàn)方法

    Vue代碼分割懶加載的實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于Vue代碼分割懶加載的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11

最新評(píng)論