# layers

> Каталог layers/ для локальных слоёв с автоматической регистрацией.

Каталог `layers/` помогает организовывать и переиспользовать код, компоненты, композаблы и конфигурацию в приложении Nuxt. Подкаталоги в `layers/` регистрируются как слои автоматически.

<note>

Авторегистрация каталога `layers/` доступна с Nuxt v3.12.0.

</note>

<tip icon="i-lucide-lightbulb">

Слои удобны для крупных кодовых баз (**DDD**), **UI-библиотек** и **тем**, общих **пресетов конфигурации**, а также для разделения **админки**, **фич** и т.п.

</tip>

## Структура

Каждая подпапка в `layers/` — отдельный слой. Внутри допустима та же структура, что и у обычного Nuxt-приложения.

<important>

У каждого слоя **обязан** быть `nuxt.config.ts` (даже пустой), иначе слой не распознаётся.

</important>

```bash [Directory structure]
-| layers/
---| base/
-----| nuxt.config.ts
-----| app/
-------| components/
---------| BaseButton.vue
-------| composables/
---------| useBase.ts
-----| server/
-------| api/
---------| hello.ts
---| admin/
-----| nuxt.config.ts
-----| app/
-------| pages/
---------| admin.vue
-------| layouts/
---------| admin.vue
```

## Автоматические алиасы

Для `srcDir` каждого слоя создаётся алиас `#layers/[имя]`:

```ts
import something from '#layers/base/path/to/file'
import { useAdmin } from '#layers/admin/composables/useAdmin'
```

<note>

Именованные алиасы слоёв появились в Nuxt v3.16.0.

</note>

## Содержимое слоя

Каждый слой может включать:

- [`nuxt.config.ts`](/docs/3.x/directory-structure/nuxt-config) — конфигурацию слоя, которая сливается с основной
- [`app.config.ts`](/docs/3.x/directory-structure/app-config) — реактивный `app.config`
- [`components/`](/docs/3.x/directory-structure/components) — компоненты Vue (автоимпорт)
- [`composables/`](/docs/3.x/directory-structure/composables) — композаблы (автоимпорт)
- [`utils/`](/docs/3.x/directory-structure/utils) — утилиты (автоимпорт)
- [`pages/`](/docs/3.x/directory-structure/pages) — страницы приложения
- [`layouts/`](/docs/3.x/directory-structure/layouts) — лейауты
- [`middleware/`](/docs/3.x/directory-structure/middleware) — middleware маршрутов
- [`plugins/`](/docs/3.x/directory-structure/plugins) — плагины Nuxt
- [`server/`](/docs/3.x/directory-structure/server) — серверные маршруты, middleware и утилиты
- [`shared/`](/docs/3.x/directory-structure/shared) — общий код между приложением и сервером

## Порядок приоритета

Если несколько слоёв задают один ресурс (компонент, композабл, страницу и т.д.), выигрывает слой с **большим приоритетом**. По умолчанию порядок **алфавитный**: позже в алфавите — выше приоритет (Z > A).

Явный порядок — префиксы в имени папки: `1.base/`, `2.features/`, `3.admin/`.

<read-more to="/docs/3.x/getting-started/layers#layer-priority">



</read-more>

<video-accordion title="Видео о слоях Nuxt (Learn Vue)" video-id="lnFCM7c9f7I">



</video-accordion>
