Архитектура

Слой app: инициализация приложения.

Слой service: отдельные логические реализации.

  • Все сервисы должны наименоваться с маленькой буквы в файле index.tsx
  • structure: изначальное состояние slice
  • store: настройка slice и actions
  • thunks: для каждой thunk свой файл, закидываются в io, а далее сами подцепляются
  • api: (Data Access Layer)
  • container: реализация логики
  • lib: utility функции, типизация
  • selectors (Реселекты для мемоизации бизнес логики)

Слой widget отдельные куски приложения:

  • Все виджеты должны именоваться с большой буквы в файле index.tsx
  • container/useContainer.ts (все side effects для ui, мемоизация логики)
  • ui (чистая компонента, отвечающая только за отрисовку)
  • templates (декомпозиция UI для более простого масштабирования приложения в будущем)
  • lib: utility функции
  • store: (необязательно) обычно используется для локального состояния загрузки или других процессов, которые зависят от других thunks
  • structure: (необязательно) изначальное состояние slice

Слой layouts: верстка каркасов приложения

Слой pages: верстка страницы, объединяющая отдельные логические реализации

#useActions hook для выполнения dispatch

const {} = useActions(sample.Actions)

где action импортируются через чей-то index.tsx

#useAppSelector вместо useSelector используется типизированный useAppSelector

Для создания новых сущностей просто копируйте папку _sample/_Sample

  • не забывайте импортировать slice в store index/store/reducers
  • каждый slice и thunk должны иметь уникальный: name (slice), typePrefix (thunk)