P粉4366889312023-10-26 00:08:21
根據這篇文章。有一個簡單但有限的解決方案和一個完全客製化的解決方案。
包含一個載入進度條,可以像這樣使用
<template> <NuxtLayout> <NuxtLoadingIndicator /> <NuxtPage /> <NuxtLayout> </template>
但它只有一個預先定義的 UI,並且只能使用這幾個屬性進行自訂
如果您需要自訂載入程式(例如帶有背景的全螢幕旋轉器),則需要不同的方法。這種方法允許您建立任何載入程式並在需要時顯示它。
<template> <div class="h-screen"> <div v-if="loading" class="fixed left-0 top-0 h-0.5 w-full z-50 bg-green-500" /> <NuxtLayout> <NuxtPage /> </NuxtLayout> </div> </template> <script setup lang="ts"> const nuxtApp = useNuxtApp(); const loading = ref(false); nuxtApp.hook("page:start", () => { loading.value = true; }); nuxtApp.hook("page:finish", () => { loading.value = false; }); </script>
Nuxt3 提供了應用程式運行時掛鉤,其中包含用於 page:start
和 page:finish
事件的攔截器。要正確使用它們,您需要以這種方式使用這些鉤子(在 app.vue 或您的自訂元件中):