Skip to content

UI макет

Подберем подходящий макет (layout) для нашего сайта. Для этого можно еще раз взглянуть на уже найденные онлайн магазины в интернете.

Основные компоненты страницы

У магазинов обычно лэйаут состоит из четырех частей - header, footer, sidebar слева и центральная панель

image

Сверху будет хедер. Слева в нем будет логотип, в середине - строка поиска, справа элементы входа в личный кабинет, корзина, избранное. Сверху основного хедера можно будет добавить дополнительный сабхедер, с ссылками Снизу основного хедера будет подхедер с меню-каталогом. У нас изначально будет всего несколько пунктов там, но в дальнейшем это можно превратить в мегаменю.

В мобильной версии хедер сильно облегчен.

При показе страницы категории товаров, слева показывается сайдбар с различными фильтрами. В мобильной версии он переносится наверх. Когда показывается страница товара, то меню слева обычно нет.

Main panel

В центральной панели показывается список товаров выбранной категории либо информация о товаре.

Футер - самый простой копонент, в нем функционала практически нет, так что ничем он не примечателен.

Мобильная версия

В мобильной версии внизу появляется отдельное зафиксированное меню с ссылками:

  • Главная
  • Каталог
  • Корзина
  • Избранное
  • Логин/личный кабинет

Сразу отметим, что сайдбар, выезжающий слева в мобильной версии (каталог), это не то же самое, что сайдбар на десктопе (фильтры).

Слабая связанность

Подобное разделение на подсистемы позволяет сохранить между ними слабую связанность. Основная логика подсистемы заключена в ней самой, и с окружающим миром она взаимодействует пока только через router.

В дальнейшем, если понадобиться из одной подсистемы вызвать команду в другой, это, скорей всего, будет делаться через Composable с глобальным стейтом.

Адаптивность

Сайдбар с фильтрами, который то слева, то сверху, легко реализовать через CSS Flexbox. То же самое с различным хедером для основной и мобильной версий. Вообще, всё что можно сделать с помощью CSS, лучше делать с помощью CSS.

Вывод

Таким образом, у нас уже намечены пять компонент, которые мы можем расположить на странице, и она будет адаптивная.

На данный момент все страницы можно технически реализовать через один Layout - MainLayout. Если потом понадобится другое расположение (для страниц заказов, личного кабинета и прочего), мы добавим.