Frontend

1. Компонент

В наших проектах мы следуем следующей архитектуре:

Architecture

1.1. Слой компонентной логики

Логика и обработка данных. Обычно поддерживается разработчиками.

1.1.1. Provider

Основные вопросы: 1. С какими бизнес-данными работает компонент? 2. Какую бизнес-логику компонент реализует?

Ответственный за: 1. Получение и подготовку данных из store 2. Подготовка действий 3. Реализация бизнес-логики

Имя файла: <component>.provider.tsx

Экспортирует mapStateToProps и / или mapDispatchToProps.

Пример:

1.1.2. Presenter

Stateful компонент.

Основные вопросы: Что компонент делает?

Ответственный за: 1. Хранение и управление состоянием UI 2. Реализация всех методов (любые обработчики, компонентная логика)

Имя файла: <component>.presenter.tsx

Экспортируемое имя класса: <Component>Presenter

Пример:

1.2. Презентационный слой

Только отображение UI.

1.2.1. Styles

Основной вопрос: Как компонент выглядит?

Имя файла: <component>.styles.tsx

Пример:

1.2.2. View

Основной вопрос: Что компонент показывает?

Ответственный за: Вёрстку без состояния, обработчиков и т.д.

Filename: <component>.view.tsx

Экспортируемое имя класса / функционального компонента: <Component>View

Пример:

1.2.3. Animation

Основной вопрос: Как компонент меняет свои состояния?

Ответственный за: Хранение состояний какой-либо анимации как для Framer Motion, так и для CSS

Имя файла: <component>.animation.ts

Пример:

1.3. Index

Директория каждого компонента должна содержать файл index с экспортируемым <Component>. Если компонент содержит слой Prodider, то этот компонент должен подключать mapStateToProps и / или mapDispatchToProps. В остальных случаях просто переэкспортировать <Component>.

Пример с существующим Provider слоем:

Пример с существующего Provider слоя:

Last updated

Was this helpful?