NuxtApp
В Nuxt вы можете получить доступ к контексту приложения в композаблах, компонентах и плагинах.
Интерфейс приложения Nuxt
Контекст Nuxt
Многие композаблы и утилиты - как встроенные, так и пользовательские - могут получить доступ к инстансу Nuxt. Его можно получить не везде в приложении, потому что при каждом запросе создается новый экземпляр.
Currently, the Nuxt context is only accessible in plugins, Nuxt hooks, Nuxt middleware (if wrapped in defineNuxtRouteMiddleware), and setup functions (in pages and components).
Если композабл вызывается вне контекста, вы можете получить ошибку "A composable that requires access to the Nuxt instance was called outside of a plugin, Nuxt hook, Nuxt middleware, or Vue setup function.". В этом случае вы можете явно вызвать функцию в контексте, используя nuxtApp.runWithContext.
Доступ к NuxtApp
Внутри композаблов, плагинов и компонентов вы можете получить доступ к nuxtApp с помощью useNuxtApp():
export function useMyComposable () {
const nuxtApp = useNuxtApp()
// доступ к экземпляру приложения nuxt
}
Если ваш композабл не всегда нуждается в доступе к контексту nuxtApp или вы просто хотите проверить его наличие или отсутствие, поскольку useNuxtApp выбрасывает исключение, то вы можете использовать tryUseNuxtApp вместо этого.
Плагины также получают nuxtApp в качестве первого аргумента для удобства.
Предоставление хелпер-функций
Вы можете предоставить функции, чтобы они были доступны во всех композаблах и приложении. Обычно это используется внутри плагинов Nuxt.
const nuxtApp = useNuxtApp()
nuxtApp.provide('hello', (name) => `Hello ${name}!`)
console.log(nuxtApp.$hello('name')) // Выведет "Hello name!"