NuxtApp

Исходный код
В Nuxt к контексту приложения в рантайме можно обращаться из композаблов, компонентов и плагинов.

В Nuxt контекст приложения в рантайме доступен в композаблах, компонентах и плагинах.

В Nuxt 2 это называлось Nuxt context.

Интерфейс Nuxt App

Перейти к документации интерфейса NuxtApp.

Контекст Nuxt

Многие композаблы и утилиты (встроенные и пользовательские) требуют доступа к экземпляру Nuxt. Он есть не везде: на каждый запрос создаётся новый экземпляр.

Сейчас контекст Nuxt доступен в плагинах, хуках Nuxt, middleware Nuxt (внутри defineNuxtRouteMiddleware) и в setup-функциях (страницы и компоненты).

Если композабл вызван без контекста, может появиться ошибка: composable, требующий экземпляра Nuxt, вызван вне плагина, хука Nuxt, middleware Nuxt или setup Vue. В таком случае можно явно выполнить код в контексте через nuxtApp.runWithContext.

Доступ к NuxtApp

В композаблах, плагинах и компонентах к nuxtApp обращаются через useNuxtApp():

app/composables/useMyComposable.ts
export function useMyComposable () {
  const nuxtApp = useNuxtApp()
  // доступ к экземпляру Nuxt в рантайме
}

Если nuxtApp не всегда нужен или нужно проверить наличие контекста, вместо useNuxtApp (который бросает исключение) используйте tryUseNuxtApp.

Плагины для удобства получают nuxtApp первым аргументом.

Узнать больше Docs > 4 X > Directory Structure > App > Plugins.

Предоставление хелперов

Хелперы для всего приложения и композаблов обычно регистрируют в плагине Nuxt.

const nuxtApp = useNuxtApp()
nuxtApp.provide('hello', name => `Hello ${name}!`)

console.log(nuxtApp.$hello('name')) // Выводит "Hello name!"
Хелперы можно внедрять, возвращая из плагина объект с ключом provide.
В плагинах Nuxt 2 это называлось функция inject.