Nuxt Nation カンファレンスが開催されます。11月12~13日にご参加ください。

コンポーネント

Nuxt Kitは、コンポーネントの操作を支援するユーティリティのセットを提供します。コンポーネントをグローバルまたはローカルに登録したり、コンポーネントをスキャンするディレクトリを追加したりできます。

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

コンポーネントのインジェクションに関するVue Schoolのビデオをご覧ください。

addComponentsDir

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

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

interface ComponentsDir {
  path: string
  pattern?: string | string[]
  ignore?: string[]
  prefix?: string
  pathPrefix?: boolean
  enabled?: boolean
  prefetch?: boolean
  preload?: boolean
  isAsync?: boolean
  extendComponent?: (component: Component) => Promise<Component | void> | (Component | void)
  global?: boolean
  island?: boolean
  watch?: boolean
  extensions?: string[]
  transpile?: 'auto' | boolean
}

// You can augment this interface (exported from `@nuxt/schema`) if needed
interface ComponentMeta {
  [key: string]: unknown
}

interface Component {
  pascalName: string
  kebabName: string
  export: string
  filePath: string
  shortPath: string
  chunkName: string
  prefetch: boolean
  preload: boolean
  global?: boolean
  island?: boolean
  mode?: 'client' | 'server' | 'all'
  priority?: number
  meta?: ComponentMeta
}

パラメータ

dir

: ComponentsDir

必須: true

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

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

opts

必須: false

  • prepend (オプション)
    : boolean
    trueに設定すると、ディレクトリはpush()の代わりにunshift()で配列の先頭に追加されます。

addComponent

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

async function addComponent (options: AddComponentOptions): void

interface AddComponentOptions {
  name: string,
  filePath: string,
  pascalName?: string,
  kebabName?: string,
  export?: string,
  shortPath?: string,
  chunkName?: string,
  prefetch?: boolean,
  preload?: boolean,
  global?: boolean,
  island?: boolean,
  mode?: 'client' | 'server' | 'all',
  priority?: number,
}

パラメータ

オプション

: AddComponentOptions

必須: true

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

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