Блок
Блок — пример компоновки на определённую тему: первый экран, список преимуществ, товарная выдача, каталог с фильтрами. Проект хранит такой пример и повторно использует его как шаблон Recipe (Словарь Recipe): с параметрами для того, что меняется от страницы к странице, и местами вставки для своего содержимого.
Правила:
- блок — не тип Framework и не отдельный уровень макета; у него нет своей схемы и своего манифеста;
- блок состоит из обычных узлов:
layout.section,layout.columns, текстовых узлов, компонентов и Smart-компонентов; - блок хранит ссылку на данные, но не сами данные (Привязки к источнику);
- в Document блока не видно: после сборки остаются только узлы, из которых он состоит.
Например, каталог товаров проект собирает из секции, колонок для фильтров и карточек и ссылки на набор товаров, а затем сохраняет эту компоновку шаблоном Recipe и вызывает её на нужных страницах. Если повторяемой части нужен собственный контракт данных и отрисовки, это уже собственный тип узла (Собственный тип), а не блок.
Блок заводят, когда секция уже содержит самостоятельный сценарий, имеет свои данные или повторяется на разных страницах. Если нужна только рамка и отступы, достаточно секции.
Тот же пример можно держать и без макета — обычной HTML-разметкой проекта из компонентов и утилит. Работающий каркас каталога из секции и колонок — в примере Каталог товаров.