溫馨提示×

溫馨提示×

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

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

Vue3中如何使用suspense異步數據加載組件

發布時間:2021-08-05 11:02:33 來源:億速云 閱讀:323 作者:Leah 欄目:開發技術

Vue3中如何使用suspense異步數據加載組件,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

前言

Vue3 增加了很多讓人眼前一亮的特征,suspense 組件就是其中之一,對處理異步請求數據非常實用,本文通過簡單的實例介紹其使用方法,如對其有興趣,可以參閱官方文檔。

通常組件在正確呈現之前需要執行某種異步請求是很常見的,通常是通過設計一種機制開發人員按照機制處理這個問題,有很多很好的方法實現這個需求。

例如,從一個 API 異步獲取數據,并希望在獲取響應數據解析完時顯示一些信息,如 loading 效果,在Vue3中可以使用 suspense 組件來執行這樣的需求。

創建組件

創建一個組件并將其命名為Peoples.vue,其組件代碼如下:

<template>
    <div v-for="(people, index) in peoples.results" :key="index">
        {{ people.name }} {{ people.birth_year }}
    </div>
</template>
<script>
import { ref } from "vue";
export default {
    name: "CyPeoples",
    async setup() {
        const peoples = ref(null);
        const headers = { "Content-Type": "application/json" };
        const fetchPeoples = await fetch("https://swapi.dev/api/people", {
            headers,
        });
        peoples.value = await fetchPeoples.json();
        return { peoples };
    },
};
</script>

這里將引入 ref 以確保組件狀態的反應性。因此,根據上面的代碼片段,通過異步 API 調用獲取電影數據。
對于VUE項目中發起 HTTP 請求,通常是使用 Axios ,這里嘗試使用 fetch 。

好的,現在就來使用 suspense 在應用程序內顯示數據加載中的信息。

修改 App.vue 文件,使其代碼如下:

<template>
    <div>
        <h2>星球大戰人物</h2>
    </div>
    <suspense>
        <template #default>
            <CyPeoples />
        </template>
        <template #fallback>
            <div>
                <h4>數據加載中……</h4>
            </div>
        </template>
    </suspense>
</template>
<script>
import CyPeoples from "./components/Peoples.vue";
import { suspense } from "vue";
export default {
    name: "App",
    components: {
        CyPeoples,
        suspense,
    },
};
</script>

看完上述內容,你們掌握Vue3中如何使用suspense異步數據加載組件的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

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

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女