NuxtApp
Nuxtでは、コンポーザブル、コンポーネント、プラグイン内でランタイムアプリケーションコンテキストにアクセスできます。
Nuxtでは、コンポーザブル、コンポーネント、プラグイン内でランタイムアプリケーションコンテキストにアクセスできます。
こちらも参照 v2.nuxt.com > docs > internals-glossary > contextNuxt App インターフェース
こちらも参照 guide > going-further > internals#the-nuxtapp-interfaceNuxt コンテキスト
多くの組み込みおよびユーザー作成のコンポーザブルやユーティリティは、Nuxtインスタンスへのアクセスを必要とする場合があります。これはアプリケーションのどこにでも存在するわけではなく、リクエストごとに新しいインスタンスが作成されます。
現在、Nuxtコンテキストはプラグイン、Nuxtフック、Nuxtミドルウェア(defineNuxtRouteMiddleware
でラップされている場合)、およびセットアップ関数(ページやコンポーネント内)でのみアクセス可能です。
コンテキストへのアクセスなしにコンポーザブルが呼び出された場合、「Nuxtインスタンスへのアクセスを必要とするコンポーザブルがプラグイン、Nuxtフック、Nuxtミドルウェア、またはVueセットアップ関数の外で呼び出されました」というエラーが発生することがあります。その場合、nuxtApp.runWithContext
を使用して、このコンテキスト内で関数を明示的に呼び出すこともできます。
NuxtAppへのアクセス
コンポーザブル、プラグイン、コンポーネント内では、useNuxtApp()
を使用してnuxtApp
にアクセスできます:
export function useMyComposable () {
const nuxtApp = useNuxtApp()
// ランタイムのnuxtアプリインスタンスにアクセス
}
コンポーザブルが常にnuxtApp
を必要としない場合や、存在するかどうかを確認したい場合、useNuxtApp
が例外をスローするため、代わりにtryUseNuxtApp
を使用できます。
プラグインもまた、便宜上、最初の引数としてnuxtApp
を受け取ります。
ヘルパーの提供
すべてのコンポーザブルやアプリケーションで使用可能なヘルパーを提供できます。これは通常、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※このページは Nuxt.js 公式ドキュメントの翻訳ページ(非公式)です。
公式ドキュメントの該当ページはこちら:
https://nuxt.com/docs/3.x/guide/going-further/nuxt-app