NuxtApp

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

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

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

Интерфейс приложения Nuxt

Документация по интерфейсу NuxtApp.

Контекст Nuxt

Многие композаблы и утилиты — как встроенные, так и пользовательские — могут получить доступ к экземпляру Nuxt. Его можно получить не везде в приложении, потому что при каждом запросе создаётся новый экземпляр.

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

Если композабл вызывается вне контекста, может появиться ошибка вида: «Композабл, которому нужен доступ к экземпляру Nuxt, вызван вне плагина, хука Nuxt, middleware Nuxt или функции setup Vue.» Тогда можно явно выполнить код в контексте через nuxtApp.runWithContext.

Доступ к NuxtApp

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

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

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

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

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

Предоставление вспомогательных функций

Вы можете предоставить функции, чтобы они были доступны во всех композаблах и приложении. Обычно это делают в плагинах Nuxt.

const nuxtApp = useNuxtApp()
nuxtApp.provide('hello', name => `Привет, ${name}!`)

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