コンポーネント

ソース
Nuxt Kit は、コンポーネントを扱うのに役立つ一連のユーティリティを提供します。コンポーネントをグローバルまたはローカルに登録したり、コンポーネントのスキャン対象となるディレクトリを追加したりできます。

コンポーネントは、Nuxt アプリケーションの構成要素です。これらは、ユーザーインターフェースを作成するために使用できる再利用可能な Vue インスタンスです。Nuxt では、デフォルトで `components` ディレクトリ内のコンポーネントが自動的にインポートされます。ただし、代替ディレクトリからコンポーネントをインポートする必要がある場合、または必要に応じて選択的にインポートしたい場合は、@nuxt/kitaddComponentsDir メソッドと addComponent メソッドを提供します。これらのユーティリティを使用すると、ニーズに合わせてコンポーネント構成をカスタマイズできます。

コンポーネントのインジェクションに関する Vue School のビデオを見る。

addComponentsDir

コンポーネントをスキャンして、使用時にのみインポートされるディレクトリを登録します。このオプションは、global: true オプションを指定しない限り、コンポーネントをグローバルに登録しないことに注意してください。

使用方法

export default defineNuxtModule({
  meta: {
    name: '@nuxt/ui',
    configKey: 'ui',
  },
  setup () {
    addComponentsDir({
      path: resolve('./runtime/components'),
      prefix: 'U',
      pathPrefix: false,
    })
  },
})

タイプ

function addComponentsDir (dir: ComponentsDir, opts: { prepend?: boolean } = {}): void

パラメーター

dir 次のプロパティを持つオブジェクト

プロパティタイプ必須説明
パス文字列trueコンポーネントを含むディレクトリへのパス (絶対パスまたは相対パス)。Nuxt のエイリアス (~ または @) を使用して、プロジェクト内のディレクトリを参照したり、require と同様に npm パッケージパスを直接使用したりできます。
patternstring | string[]false指定されたパスに対して実行されるパターンを受け入れます。
ignorestring[]false指定されたパスに対して実行される無視パターン。
prefix文字列falseマッチしたすべてのコンポーネントにこの文字列をプレフィックスとして追加します。
pathPrefixブール値falseコンポーネント名をそのパスでプレフィックスします。
prefetchブール値falseこれらのプロパティ (prefetch/preload) は、本番環境で、Lazy プレフィックスを持つコンポーネントが webpack のマジックコメントによってどのように処理されるかを設定するために使用されます。詳細については、webpack ドキュメント
preloadブール値falseこれらのプロパティ (prefetch/preload) は、本番環境で、Lazy プレフィックスを持つコンポーネントが webpack のマジックコメントによってどのように処理されるかを設定するために使用されます。詳細については、webpack ドキュメント
isAsyncブール値falseこのフラグは、Lazy プレフィックスを使用するかどうかにかかわらず、コンポーネントを非同期 (別個のチャンクで) ロードする必要があることを示します。
extendComponent(component: Component) => Promise<Component | void> | (Component | void)falseディレクトリ内で見つかった各コンポーネントに対して呼び出される関数。コンポーネントオブジェクトを受け取り、コンポーネントオブジェクトまたはコンポーネントオブジェクトに解決されるプロミスを返す必要があります。
globalブール値false有効にすると、コンポーネントをグローバルに利用できるように登録します。
islandブール値false有効にすると、コンポーネントをアイランドとして登録します。アイランドの詳細については、<NuxtIsland/> コンポーネントの説明を参照してください。
watchブール値falseファイルの追加や削除を含む、指定されたパスの変更を監視します。
extensionsstring[]falseNuxt ビルダーでサポートされている拡張子。
transpile'auto' | booleanfalsebuild.transpile を使用して指定されたパスをトランスパイルします。'auto' に設定すると、パスに node_modules/ が含まれている場合に transpile: true が設定されます。

opts

プロパティタイプ必須説明
prependブール値falsetrue に設定すると、ディレクトリは push() ではなく unshift() を使用して配列の先頭に追加されます。

addComponent

自動的にインポートされるコンポーネントを登録します。

使用方法

import { addComponent, createResolver, defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
  meta: {
    name: '@nuxt/image',
    configKey: 'image',
  },
  setup () {
    const resolver = createResolver(import.meta.url)

    addComponent({
      name: 'NuxtImg',
      filePath: resolver.resolve('./runtime/components/NuxtImg.vue'),
    })

    addComponent({
      name: 'NuxtPicture',
      filePath: resolver.resolve('./runtime/components/NuxtPicture.vue'),
    })
  },
})

タイプ

function addComponent (options: AddComponentOptions): void

パラメーター

options: 次のプロパティを持つオブジェクト

プロパティタイプ必須説明
name文字列trueコンポーネント名。
filePath文字列trueコンポーネントへのパス。
declarationPath文字列falseコンポーネントの宣言ファイルへのパス。コンポーネントの型テンプレートを生成するために使用されます。指定されていない場合は、filePath が代わりに使用されます。
pascalName文字列falseパスカルケースのコンポーネント名。指定されていない場合は、コンポーネント名から生成されます。
kebabName文字列falseケバブケースのコンポーネント名。指定されていない場合は、コンポーネント名から生成されます。
export文字列false名前付きまたはデフォルトのエクスポートを指定します。指定されていない場合は、'default' に設定されます。
shortPath文字列falseコンポーネントへの短いパス。指定されていない場合は、コンポーネントパスから生成されます。
chunkName文字列falseコンポーネントのチャンク名。指定されていない場合は、コンポーネント名から生成されます。
prefetchブール値falseこれらのプロパティ (prefetch/preload) は、本番環境で、Lazy プレフィックスを持つコンポーネントが webpack のマジックコメントによってどのように処理されるかを設定するために使用されます。詳細については、webpack ドキュメント
preloadブール値falseこれらのプロパティ (prefetch/preload) は、本番環境で、Lazy プレフィックスを持つコンポーネントが webpack のマジックコメントによってどのように処理されるかを設定するために使用されます。詳細については、webpack ドキュメント
globalブール値false有効にすると、コンポーネントがグローバルに利用できるように登録されます。
islandブール値false有効にすると、コンポーネントがアイランドとして登録されます。アイランドの詳細については、<NuxtIsland/> コンポーネントの説明を参照してください。
モード'client' | 'server' | 'all'falseこのオプションは、コンポーネントがクライアント、サーバー、またはその両方でレンダリングされるべきかどうかを示します。デフォルトでは、クライアントとサーバーの両方でレンダリングされます。
prioritynumberfalseコンポーネントの優先度。複数のコンポーネントが同じ名前を持つ場合、最も優先度が高いコンポーネントが使用されます。

npm パッケージからコンポーネントを自動インポートし、そのコンポーネントが名前付きエクスポート (デフォルトではない) である場合、export オプションを使用してそれを指定できます。

import { addComponent, defineNuxtModule } from '@nuxt/kit'

export default defineNuxtModule({
  setup () {
    // import { MyComponent as MyAutoImportedComponent } from 'my-npm-package'
    addComponent({
      name: 'MyAutoImportedComponent',
      export: 'MyComponent',
      filePath: 'my-npm-package',
    })
  },
})