refreshNuxtData
Refresh all or specific asyncData instances in Nuxt
refreshNuxtData is used to refetch all or specific asyncData instances, including those from useAsyncData, useLazyAsyncData, useFetch, and useLazyFetch.
If your component is cached by
<KeepAlive> and enters a deactivated state, the asyncData inside the component will still be refetched until the component is unmounted.Type
refreshNuxtData(keys?: string | string[])
Parameters
keys: A single string or an array of strings askeysthat are used to fetch the data. This parameter is optional. AlluseAsyncDataanduseFetchkeys are re-fetched when nokeysare explicitly specified.
Return Values
refreshNuxtData returns a promise, resolving when all or specific asyncData instances have been refreshed.
Examples
Refresh All Data
This example below refreshes all data being fetched using useAsyncData and useFetch in Nuxt application.
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>
Refresh Specific Data
This example below refreshes only data where the key matches to count.
pages/some-page.vue
<script setup lang="ts">
const refreshing = ref(false)
async function refresh () {
refreshing.value = true
try {
await refreshNuxtData('count')
} finally {
refreshing.value = false
}
}
</script>
<template>
<div>
{{ refreshing ? 'Loading' : count }}
</div>
<button @click="refresh">Refresh</button>
</template>
If you have access to the
asyncData instance, it is recommended to use its refresh or execute method as the preferred way to refetch the data.