Skip to main content
useLazyAsyncData provides a wrapper around useAsyncData that triggers navigation before the handler is resolved by setting the lazy option to true.
By default, useAsyncData blocks navigation until its async handler is resolved. useLazyAsyncData allows navigation to occur immediately while data fetching continues in the background.

Usage

[app/pages/index.vue]
When using useLazyAsyncData, navigation will occur before fetching is complete. This means you must handle pending and error states directly within your component’s template.
useLazyAsyncData is a reserved function name transformed by the compiler, so you should not name your own function useLazyAsyncData.

Parameters

useLazyAsyncData accepts the same parameters as useAsyncData, with the lazy option automatically set to true.
string
A unique key to ensure that data fetching can be properly de-duplicated across requests.
(ctx?: NuxtApp) => Promise<T>
required
An asynchronous function that returns the data.
AsyncDataOptions<T>
Same options as useAsyncData, with lazy automatically set to true. See useAsyncData parameters for details.

Return Values

useLazyAsyncData returns the same values as useAsyncData.
Ref<T | undefined>
The result of the asynchronous function that is passed in.
(opts?: AsyncDataExecuteOptions) => Promise<void>
A function that can be used to refresh the data returned by the handler function.
Ref<Error | undefined>
An error object if the data fetching failed.
Ref<'idle' | 'pending' | 'success' | 'error'>
A string indicating the status of the data request.
Ref<boolean>
A boolean that is true while the request is in progress.
() => void
A function that can be used to set data to undefined, set error to undefined, set status to idle, and mark any currently pending requests as cancelled.

Example

[app/pages/index.vue]

Type