Для разработчиков
Renderer: маппинг Strapi → Vue
Блоки из Strapi рендерятся во Vue-компоненты в apps/web/layers/page/app/components/Blocks/Renderer/Renderer.vue.
Renderer: маппинг Strapi → Vue
Блоки из Strapi рендерятся во Vue-компоненты в apps/web/layers/page/app/components/Blocks/Renderer/Renderer.vue.
Таблица соответствия
| Strapi (__component) | Vue (resolveComponent) |
|---|---|
content.rich-text | UiContentContentRichTextRenderer |
content.editor | UiContentEditor |
content.editor-markdown | UiContentMarkdown |
content.markdown | UiContentMarkdown |
content.images | UiContentPicture |
content.video | UiContentVideo |
content.author | UiContentAuthor |
blocks.promo | BlocksPromo |
blocks.collections | BlocksCollections |
blocks.projects | BlocksProjects |
blocks.progress-construction | BlocksProgressConstruction |
blocks.about | BlocksAbout |
blocks.news | BlocksNews |
blocks.form | BlocksForm |
blocks.contacts | BlocksContacts |
blocks.tenders | BlocksTenders |
blocks.documents | BlocksDocuments |
blocks.video | BlocksVideo |
blocks.card | BlocksCard |
blocks.card-grid | BlocksCardGrid |
blocks.card-grid-alt | BlocksCardGridAlt |
blocks.card-slider | BlocksCardSlider |
blocks.card-slider-alt | BlocksCardSliderAlt |
blocks.hero | BlocksHero |
blocks.feature-slider | BlocksFeatureSlider |
blocks.feature-slider-alt | BlocksFeatureSliderAlt |
blocks.news-page | BlocksNewsPage |
blocks.promo-page | BlocksPromoPage |
blocks.non-residential-page | NonResBlocksPage |
blocks.purchasing-methods | BlocksAcquisitionMethods |
blocks.project-progress | BlocksProgressConstructionProject |
blocks.infra-map | BlocksInfraMap |
blocks.flats-filter | BlocksFlatsFilter |
blocks.flats | BlocksFlats |
blocks.heading | BlocksHeading |
blocks.secondary-flats | BlocksSecondaryFlats |
blocks.banner | BlocksBanner |
blocks.similar-flats | BlocksSimilarFlats |
blocks.mortgage-calculator | MortgageSectionCalculationBlock |
blocks.genplan | BlocksGenplan |
blocks.project-block | BlocksProjectBlock |
Добавление нового блока
- Strapi — добавьте компонент в
dynamiczone.componentsв schema content-type (page, project, new, promotion, secondary-house, apartment-page) - config/page.js — добавьте populate для блока в объект
blocks.on - Renderer.vue — добавьте запись в
components:'blocks.my-block': resolveComponent('BlocksMyBlock'),
Блоки с серым фоном
Блоки blocks.card-grid, blocks.card-grid-alt, blocks.mortgage-calculator имеют серый фон для визуального слияния секций.
Props
Renderer принимает blocks (массив блоков) и class. Каждый блок передаётся в компонент через prop data.