mirror of
https://github.com/gromlab-ru/slm-design.git
synced 2026-08-22 07:30:16 +03:00
31 lines
1.9 KiB
Markdown
31 lines
1.9 KiB
Markdown
# Вложенные модули
|
||
|
||
> Пояснение нормативной модели вложенных модулей SLM.
|
||
|
||
Вложенный модуль является обычным модулем, размещённым внутри границы родительского модуля. Он имеет собственные ответственность, публичный API и границу зависимостей и подчиняется всем общим правилам модулей.
|
||
|
||
## Связанные правила
|
||
|
||
- [`SLM-MODULE-A004`](../rules/registry.md#slm-module-a004)
|
||
- [`SLM-MODULE-R006`](../rules/registry.md#slm-module-r006)
|
||
- [`SLM-DEPENDENCY-A005`](../rules/registry.md#slm-dependency-a005)
|
||
- [`SLM-NESTED_MODULE-A010`](../rules/registry.md#slm-nested_module-a010)
|
||
|
||
## Пример
|
||
|
||
```text
|
||
landing/
|
||
├── landing.page.tsx
|
||
├── parts/
|
||
│ └── hero/
|
||
│ ├── hero.tsx
|
||
│ └── index.ts
|
||
└── index.ts
|
||
```
|
||
|
||
`parts/` здесь является примером сегмента, а не обязательным именем.
|
||
|
||
Код родительского модуля использует вложенный модуль через его собственный публичный API. Код за пределами родительского модуля получает доступ только через публичный API родителя.
|
||
|
||
Если вложенный модуль становится нужен за пределами родителя, рекомендуется перенести его в минимальную общую область без изменения внутренней формы. Доступ через API родителя при этом остаётся допустимым и сам по себе не требует переноса.
|