refreshNuxtData

原始檔
重新整理 Nuxt 中所有或特定的 asyncData 例項

refreshNuxtData 用於重新獲取所有或特定的 asyncData 例項,包括來自 useAsyncDatauseLazyAsyncDatauseFetchuseLazyFetch 的例項。

如果您的元件被 <KeepAlive> 快取並進入停用狀態,元件內部的 asyncData 仍將被重新獲取,直到元件解除安裝。

型別

簽名
export function refreshNuxtData (keys?: string | string[])

引數

  • keys:一個字串或一個字串陣列,用作獲取資料的 keys。此引數是可選的。當未明確指定 keys 時,所有 useAsyncDatauseFetch 鍵都將被重新獲取。

返回值

refreshNuxtData 返回一個 Promise,當所有或特定的 asyncData 例項重新整理完成後解析。

示例

重新整理所有資料

下面的例子重新整理 Nuxt 應用程式中使用 useAsyncDatauseFetch 獲取的所有資料。

app/pages/some-page.vue
<script setup lang="ts">
const refreshing = ref(false)

async function refreshAll () {
  refreshing.value = true
  try {
    await refreshNuxtData()
  } finally {
    refreshing.value = false
  }
}
</script>

<template>
  <div>
    <button
      :disabled="refreshing"
      @click="refreshAll"
    >
      Refetch All Data
    </button>
  </div>
</template>

重新整理特定資料

下面的例子僅重新整理鍵匹配 countuser 的資料。

app/pages/some-page.vue
<script setup lang="ts">
const refreshing = ref(false)

async function refresh () {
  refreshing.value = true
  try {
    // you could also pass an array of keys to refresh multiple data
    await refreshNuxtData(['count', 'user'])
  } finally {
    refreshing.value = false
  }
}
</script>

<template>
  <div v-if="refreshing">
    Loading
  </div>
  <button @click="refresh">
    Refresh
  </button>
</template>
如果您可以訪問 asyncData 例項,建議使用其 refreshexecute 方法作為重新獲取資料的首選方式。
文件 > 4 X > 入門 > 資料獲取中閱讀更多資訊。