Skip to content

Юниты в ядре

В ядре есть несколько видов юнитов. Они специально разделены, чтобы модель не превращалась в один объект с методами на все случаи.

Стор хранит значение. Событие сообщает, что что-то произошло. Эффект запускает работу, которая завершится позже. Реакция связывает юниты в правила. Scope задает, где живут значения. Владелец задает, когда временная работа должна быть очищена.

Эти роли лучше не смешивать. Если событие начинает хранить состояние, становится трудно понять, где правда. Если компонент сам ведет loading для эффекта, асинхронная логика расползается по UI. Если временная модель не имеет владельца, ее реакции и подписки легко забыть удалить.

Главные юниты

  • Сторы — что модель помнит и как значения живут в scope.
  • События — как модель узнает, что что-то произошло.
  • Эффекты — как держать async-работу и ее lifecycle внутри модели.
  • Реакции — как описывать правила между сторами, событиями и эффектами.
  • Ленивые модели — как загрузить модуль модели только при запуске одного из ее юнитов.

После этого стоит прочитать Скоупы, потому что без scope нельзя понять, где именно хранится значение стора.