NuxtApp
В Nuxt вы можете получить доступ к контексту приложения в композаблах, компонентах и плагинах.
Интерфейс приложения Nuxt
Контекст Nuxt
Многие композаблы и утилиты — как встроенные, так и пользовательские — могут получить доступ к экземпляру Nuxt. Его можно получить не везде в приложении, потому что при каждом запросе создаётся новый экземпляр.
Сейчас контекст Nuxt доступен только в плагинах, хуках Nuxt, middleware Nuxt (если обёрнуты в defineNuxtRouteMiddleware) и в функциях setup (на страницах и в компонентах).
Если композабл вызывается вне контекста, может появиться ошибка вида: «Композабл, которому нужен доступ к экземпляру Nuxt, вызван вне плагина, хука Nuxt, middleware Nuxt или функции setup Vue.» Тогда можно явно выполнить код в контексте через nuxtApp.runWithContext.
Доступ к NuxtApp
Внутри композаблов, плагинов и компонентов к nuxtApp обращаются через useNuxtApp():
export function useMyComposable () {
const nuxtApp = useNuxtApp()
// доступ к экземпляру приложения Nuxt
}
Если композаблу не всегда нужен контекст nuxtApp или нужно только проверить, есть ли он (при этом useNuxtApp бросает исключение), используйте tryUseNuxtApp.
Плагины также получают nuxtApp в качестве первого аргумента для удобства.
Предоставление вспомогательных функций
Вы можете предоставить функции, чтобы они были доступны во всех композаблах и приложении. Обычно это делают в плагинах Nuxt.
const nuxtApp = useNuxtApp()
nuxtApp.provide('hello', name => `Привет, ${name}!`)
console.log(nuxtApp.$hello('мир')) // Выведет «Привет, мир!»