Компоненты
Компоненты - это строительные блоки вашего приложения Nuxt. Они представляют собой переиспользуемые инстансы Vue, которые могут быть использованы для создания пользовательского интерфейса. В Nuxt компоненты из директории components по умолчанию импортируются автоматически. Однако, если вам нужно импортировать компоненты из альтернативной директории или вы хотите выборочно импортировать их по мере необходимости, @nuxt/kit предоставляет методы addComponentsDir и addComponent. Эти утилиты позволяют настроить конфигурацию компонентов в соответствии с вашими потребностями.
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
}
// При необходимости вы можете дополнить этот интерфейс (экспортированный из `@nuxt/schema`)
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 (~ или @) для ссылки на директории внутри проекта или напрямую использовать путь к пакету npm, аналогичный require.pattern(опциональный)
Тип:string | string[]
Принимает паттерн, который будет запущен по указанному пути.ignore(опциональный)
Тип:string[]
Игнорирует паттерны, которые будут выполняться по указанному пути.prefix(опциональный)
Тип:string
Префикс всех найденных компонентов с помощью этой строки.pathPrefix(опциональный)
Тип:boolean
Префикс имени компонента по его пути.enabled(опциональный)
Тип:boolean
Игнорирует сканирование этой директории, если установлено значениеtrue.prefetch(опциональный)
Тип:boolean
Эти свойства (prefetch/preload) используются в продакшене для настройки того, как компоненты с префиксом Lazy будут обрабатываться webpack с помощью его магических комментариев. Узнайте больше в документации webpackpreload(опциональный)
Тип:boolean
Эти свойства (prefetch/preload) используются в продакшене для настройки того, как компоненты с префиксом Lazy будут обрабатываться webpack с помощью его магических комментариев. Узнайте больше в документации webpackisAsync(опциональный)
Тип: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', то будет установлено значениеtranspile: true, еслиnode_modules/находится по пути.
opts
Обязательный: false
prepend(опциональный)
Тип:boolean
Если установлено значениеtrue, директория будет добавлена в массив с помощьюunshift()вместоpush().
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,
}
Параметры
options
Тип: AddComponentOptions
Обязательный: true
Объект со следующими свойствами:
name(обязательный)
Тип:string
Название компонента.filePath(обязательный)
Тип:string
Путь к компоненту.pascalName(опциональный)
Тип:pascalCase(options.name)
Имя компонента в PascalCase. Если имя не указано, оно будет сгенерировано из имени компонента.kebabName(опциональный)
Тип:kebabCase(options.name)
Имя компонента в kebab-case. Если имя не указано, оно будет сгенерировано из имени компонента.export(опциональный)
Тип:string
По умолчанию:'default'
Устанавливает именованный экспорт или экспорт по умолчанию. Если не указано, то будет установлено значение'default'.shortPath(опциональный)
Тип:string
Короткий путь к компоненту. Если он не указан, то будет сгенерирован из пути к компоненту.chunkName(опциональный)
Тип:string
По умолчанию:'components/' + kebabCase(options.name)
Имя чанка для компонента. Если имя не указано, оно будет сгенерировано из имени компонента.prefetch(опциональный)
Тип:boolean
Эти свойства (prefetch/preload) используются в продакшене для настройки того, как компоненты с префиксом Lazy будут обрабатываться webpack с помощью его магических комментариев. Узнайте больше в документации webpackpreload(опциональный)
Тип:boolean
Эти свойства (prefetch/preload) используются в продакшене для настройки того, как компоненты с префиксом Lazy будут обрабатываться webpack с помощью его магических комментариев. Узнайте больше в документации webpackglobal(опциональный)
Тип:boolean
По умолчанию:false
Если включено, регистрирует компонент для глобальной доступности.island(опциональный)
Тип:boolean
Если включено, регистрирует компонент как остров. Подробнее об островах вы можете прочитать в описании компонента<NuxtIsland/>.mode(опциональный)
Тип:'client' | 'server' | 'all'
По умолчанию:'all'
Эта опция указывает, где компонент должен отображаться - на клиенте, сервере или и там, и там. По умолчанию он будет отображаться как на клиенте, так и на сервере.priority(опциональный)
Тип:number
По умолчанию:1
Приоритет компонента: если несколько компонентов имеют одинаковое имя, будет использоваться тот, у которого самый высокий приоритет.