Контекст

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

Модули Nuxt расширяют фреймворк и упорядочивают код. Когда экземпляр Nuxt не передаётся аргументом, его можно взять из контекста через useNuxt или tryUseNuxt.

В setup модуля экземпляр Nuxt передаётся вторым аргументом — там useNuxt() не обязателен.

useNuxt

Возвращает экземпляр Nuxt из контекста. Выбрасывает ошибку, если Nuxt недоступен.

Использование

import { useNuxt } from '@nuxt/kit'

const setupSomeFeature = () => {
  const nuxt = useNuxt()

  // теперь доступен экземпляр nuxt
  console.log(nuxt.options)
}

Тип

// @errors: 2391
import type { Nuxt } from '@nuxt/schema'
// ---cut---
function useNuxt (): Nuxt

Возвращаемое значение

useNuxt возвращает экземпляр Nuxt со всеми опциями и методами.

СвойствоТипОписание
optionsNuxtOptionsИтоговая конфигурация Nuxt.
hooksHookable<NuxtHooks>Система хуков: регистрация и подписка на этапы жизненного цикла.
hook(name: string, (...args: any[]) => Promise<void> | void) => () => voidАналог nuxt.hooks.hook — подписка одним колбэком на именованный хук.
callHook(name: string, ...args: any[]) => Promise<any>Аналог nuxt.hooks.callHook — вызов хука и всех подписчиков.
addHooks(configHooks: NestedHooks) => () => voidАналог nuxt.hooks.addHooks — пакетная регистрация хуков.

Примеры

import { useNuxt } from '@nuxt/kit'

export const setupTranspilation = () => {
  const nuxt = useNuxt()

  if (nuxt.options.builder === '@nuxt/webpack-builder') {
    nuxt.options.build.transpile ||= []
    nuxt.options.build.transpile.push('xstate')
  }
}

tryUseNuxt

Возвращает экземпляр Nuxt из контекста или null, если Nuxt недоступен.

Использование

import { tryUseNuxt } from '@nuxt/kit'

function setupSomething () {
  const nuxt = tryUseNuxt()

  if (nuxt) {
    // экземпляр nuxt доступен
    console.log(nuxt.options)
  } else {
    console.log('Nuxt недоступен')
  }
}

Тип

// @errors: 2391
import type { Nuxt } from '@nuxt/schema'
// ---cut---
function tryUseNuxt (): Nuxt | null

Возвращаемое значение

tryUseNuxt возвращает экземпляр Nuxt, если он есть в контексте, иначе null.

Структура экземпляра такая же, как у useNuxt выше.

Примеры

declare module 'nuxt/schema' {
  interface NuxtOptions {
    siteConfig: SiteConfig
  }
}
// ---cut---
import { tryUseNuxt } from '@nuxt/kit'

interface SiteConfig {
  title?: string
}

export const requireSiteConfig = (): SiteConfig => {
  const nuxt = tryUseNuxt()
  if (!nuxt) {
    return {}
  }
  return nuxt.options.siteConfig
}