コンテキスト
Nuxt Kitは、コンテキストを扱うのに役立つ一連のユーティリティを提供します。
Nuxtモジュールは、Nuxtの機能を強化することができます。これらは、コードを整理し、モジュール化された状態に保つための構造化された方法を提供します。モジュールをより小さなコンポーネントに分割したい場合、NuxtはuseNuxtおよびtryUseNuxt関数を提供します。これらの関数を使用すると、引数として渡すことなく、コンテキストからNuxtインスタンスに簡単にアクセスできます。
Nuxtモジュールの
setup関数を使用する場合、Nuxtはすでに2番目の引数として提供されています。これは、useNuxt()を呼び出すことなく直接アクセスできることを意味します。useNuxt
コンテキストからNuxtインスタンスを取得します。Nuxtが利用できない場合、エラーをスローします。
使用方法
import { useNuxt } from '@nuxt/kit'
const setupSomeFeature = () => {
const nuxt = useNuxt()
// You can now use the nuxt instance
console.log(nuxt.options)
}
タイプ
function useNuxt (): Nuxt
戻り値
useNuxt関数は、Nuxtで利用可能なすべてのオプションとメソッドを含むNuxtインスタンスを返します。
| プロパティ | タイプ | 説明 |
|---|---|---|
options | NuxtOptions | 解決されたNuxt設定。 |
hooks | Hookable<NuxtHooks> | Nuxtフックシステム。ライフサイクルイベントの登録とリスニングを可能にします。 |
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')
}
}
import { setupTranspilation } from './setupTranspilation'
export default defineNuxtModule({
setup () {
setupTranspilation()
},
})
tryUseNuxt
コンテキストからNuxtインスタンスを取得します。Nuxtが利用できない場合、nullを返します。
使用方法
import { tryUseNuxt } from '@nuxt/kit'
function setupSomething () {
const nuxt = tryUseNuxt()
if (nuxt) {
// You can now use the nuxt instance
console.log(nuxt.options)
} else {
console.log('Nuxt is not available')
}
}
タイプ
function tryUseNuxt (): Nuxt | null
戻り値
tryUseNuxt関数は、Nuxtが利用可能な場合はNuxtインスタンスを返し、利用できない場合はnullを返します。
useNuxtセクションで説明されているNuxtインスタンス。
例
import { tryUseNuxt } from '@nuxt/kit'
interface SiteConfig {
title?: string
}
export const requireSiteConfig = (): SiteConfig => {
const nuxt = tryUseNuxt()
if (!nuxt) {
return {}
}
return nuxt.options.siteConfig
}
import { defineNuxtModule, useNuxt } from '@nuxt/kit'
import { requireSiteConfig } from './requireSiteConfig'
export default defineNuxtModule({
setup (_, nuxt) {
const config = requireSiteConfig()
nuxt.options.app.head.title = config.title
},
})