Введение в проект TAK
Проект TAK — это монорепозиторий, объединяющий:
Введение в проект TAK
Проект TAK — это монорепозиторий, объединяющий:
- Strapi (
apps/strapi) — headless CMS для управления контентом - Nuxt (
apps/web) — фронтенд на Vue 3 и Nuxt 4 - Docus (
apps/docus) — документация (это приложение)
Архитектура
flowchart LR
subgraph Backend [Backend]
Strapi[Strapi CMS]
end
subgraph Frontend [Frontend]
Nuxt[Nuxt Web]
end
subgraph Docs [Docs]
Docus[Docus]
end
Nuxt -->|REST API| Strapi
Контент создаётся в Strapi, сохраняется в базу данных и отдаётся через REST API. Nuxt-приложение запрашивает данные и рендерит страницы с помощью компонентов, соответствующих блокам из Strapi.
Ключевые концепции
Content Types (типы контента)
- Single types — один экземпляр (header, footer, contact, map и т.д.)
- Collection types — множество записей (страницы, проекты, новости, акции и т.д.)
Blocks (блоки)
Страницы, проекты, новости и другие сущности состоят из блоков (Dynamic Zone). Каждый блок — это компонент с полями. На фронте блоки маппятся на Vue-компоненты в Renderer.vue.
Структура блоков
При добавлении нового блока в один content-type его нужно добавить во все типы, где используется Dynamic Zone:
- Страницы (
api::page.page) - Новости (
api::new.new) - Акции (
api::promotion.promotion) - Проекты (
api::project.project) - Вторички (
api::secondary-house.secondary-house) - Страница квартиры (
api::apartment-page.apartment-page)
Подробнее — в разделе Strapi.