91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue3異步組件Suspense怎么使用

發布時間:2023-05-17 15:36:03 來源:億速云 閱讀:125 作者:zzz 欄目:編程語言

今天小編給大家分享一下Vue3異步組件Suspense怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

Suspense組件

官網中有提到他是屬于實驗性功能:
<Suspense> 是一項實驗性功能。它不一定會最終成為穩定功能,并且在穩定之前相關 API 也可能會發生變化。
<Suspense> 是一個內置組件,用來在組件樹中協調對異步依賴的處理。它讓我們可以在組件樹上層等待下層的多個嵌套異步依賴項解析完成,并可以在等待時渲染一個加載狀態。

意思就是此組件用來等待異步組件時渲染一些額外內容,讓應用有更好的用戶體驗

要了解 <Suspense> 所解決的問題和它是如何與異步依賴進行交互的,我們需要想象這樣一種組件層級結構:

<Suspense>
└─ <Dashboard>
   ├─ <Profile>
   │  └─ <FriendStatus>(組件有異步的 setup())
   └─ <Content>
      ├─ <ActivityFeed> (異步組件)
      └─ <Stats>(異步組件)

在這個組件樹中有多個嵌套組件,要渲染出它們,首先得解析一些異步資源。如果沒有 <Suspense>,則它們每個都需要處理自己的加載、報錯和完成狀態。在最壞的情況下,我們可能會在頁面上看到三個旋轉的加載態,在不同的時間顯示出內容。

有了 <Suspense> 組件后,我們就可以在等待整個多層級組件樹中的各個異步依賴獲取結果時,在頂層展示出加載中或加載失敗的狀態。

接下來看個簡單的例子:

首先需要引入異步組件

import {defineAsyncComponent} from 'vue'
const Child = defineAsyncComponent(()=>import('./components/Child.vue'))

簡潔一些就是用組件實現異步的加載的這么一個效果

Home父組件代碼如下:

<template>
  <div class="home">
    <h5>我是Home組件</h5>
    <Suspense>
       <template #default>
        <Child />
      </template>
      <template v-slot:fallback>
        <h5>Loading...</h5>
      </template>
    </Suspense>
  </div>
</template>
 
<script >
// import Child from './components/Child'//靜態引入
import { defineAsyncComponent  } from "vue";
const Child = defineAsyncComponent(() => import("../components/Child"));
export default {
  name: "",
  components: { Child },
};
</script>
 
<style>
.home {
  width: 300px;
  background-color: gray;
  padding: 10px;
}
</style>

自組件Child

<template>
  <div class="child">
    <h5>我是Child組件</h5>
    name: {{user.name}}
    age: {{user.age}}
  </div>
</template>

<script>
import { ref } from "vue";
export default {
  name: "Child",
  async setup() {
    const NanUser = () => {
      return new Promise((resolve, reject) => {
        setTimeout(() => {
          resolve({
            name: "NanChen",
            age: 20,
          });
        },2000);
      });
    };
    const user = await NanUser();
    return {
      user,
    };
  },
};
</script>

<style>
.child {
  background-color: skyblue;
  padding: 10px;
}
</style>

根據插槽機制,來區分組件, #default 插槽里面的內容就是你需要渲染的異步組件; #fallback 就是你指定的加載中的靜態組件。

效果如下:
Vue3異步組件Suspense怎么使用

以上就是“Vue3異步組件Suspense怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

周至县| 鲁山县| 漳平市| 林周县| 梁平县| 社旗县| 蛟河市| 甘泉县| 建德市| 景宁| 宜州市| 禹城市| 比如县| 太保市| 新干县| 天全县| 大荔县| 法库县| 台州市| 湘潭市| 筠连县| 兴文县| 日照市| 民权县| 常熟市| 南开区| 尼玛县| 郁南县| 罗定市| 上高县| 武强县| 拉孜县| 宜章县| 股票| 云安县| 五台县| 花莲市| 荆门市| 海淀区| 岳阳市| 宜川县|