NuxtApp
В Nuxt контекст приложения в рантайме доступен в композаблах, компонентах и плагинах.
Интерфейс Nuxt App
Контекст Nuxt
Многие композаблы и утилиты (встроенные и пользовательские) требуют доступа к экземпляру Nuxt. Он есть не везде: на каждый запрос создаётся новый экземпляр.
Сейчас контекст Nuxt доступен в плагинах, хуках Nuxt, middleware Nuxt (внутри defineNuxtRouteMiddleware) и в setup-функциях (страницы и компоненты).
Если композабл вызван без контекста, может появиться ошибка: composable, требующий экземпляра 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 => `Hello ${name}!`)
console.log(nuxtApp.$hello('name')) // Выводит "Hello name!"