nuxt logo

ドキュメント翻訳

NuxtApp

Nuxtでは、コンポーザブル、コンポーネント、プラグイン内でランタイムアプリケーションコンテキストにアクセスできます。

Nuxtでは、コンポーザブル、コンポーネント、プラグイン内でランタイムアプリケーションコンテキストにアクセスできます。

こちらも参照 v2.nuxt.com > docs > internals-glossary > context

Nuxt App インターフェース

こちらも参照 guide > going-further > internals#the-nuxtapp-interface

Nuxt コンテキスト

多くの組み込みおよびユーザー作成のコンポーザブルやユーティリティは、Nuxtインスタンスへのアクセスを必要とする場合があります。これはアプリケーションのどこにでも存在するわけではなく、リクエストごとに新しいインスタンスが作成されます。

現在、NuxtコンテキストはプラグインNuxtフックNuxtミドルウェアdefineNuxtRouteMiddlewareでラップされている場合)、およびセットアップ関数(ページやコンポーネント内)でのみアクセス可能です。

コンテキストへのアクセスなしにコンポーザブルが呼び出された場合、「Nuxtインスタンスへのアクセスを必要とするコンポーザブルがプラグイン、Nuxtフック、Nuxtミドルウェア、またはVueセットアップ関数の外で呼び出されました」というエラーが発生することがあります。その場合、nuxtApp.runWithContextを使用して、このコンテキスト内で関数を明示的に呼び出すこともできます。

NuxtAppへのアクセス

コンポーザブル、プラグイン、コンポーネント内では、useNuxtApp()を使用してnuxtAppにアクセスできます:

composables/useMyComposable.ts
export function useMyComposable () {
  const nuxtApp = useNuxtApp()
  // ランタイムのnuxtアプリインスタンスにアクセス
}

コンポーザブルが常にnuxtAppを必要としない場合や、存在するかどうかを確認したい場合、useNuxtAppが例外をスローするため、代わりにtryUseNuxtAppを使用できます。

プラグインもまた、便宜上、最初の引数としてnuxtAppを受け取ります。

こちらも参照 guide > directory-structure > plugins

ヘルパーの提供

すべてのコンポーザブルやアプリケーションで使用可能なヘルパーを提供できます。これは通常、Nuxtプラグイン内で行われます。

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

console.log(nuxtApp.$hello('name')) // "Hello name!"と表示されます
こちらも参照 guide > directory-structure > plugins#providing-helpers こちらも参照 v2.nuxt.com > docs > directory-structure > plugins