В моем текущем SPA я храню все данные в централизованном хранилище (состоянии), чьи действия вызывают мутации состояния и публикуют определенные события pubSub.
Моя логика пользовательского интерфейса организована в различные представления (функции), которые привызвал рисование необходимых элементов пользовательского интерфейса (кеширует их), присоединяет события пользовательского интерфейса и подписывает специфическую логику пользовательского интерфейса для вышеупомянутых событий pubSub.
Идея: Пользователь запускает события пользовательского интерфейса, которые вызывают бизнес-логику, котораяможет изменить или не изменить состояние, и пользовательский интерфейс автоматически обновляется в соответствии с этими изменениями.
Проблема: Различные представления могут подписываться на одно и то же событие хранилища, поэтому может случиться, что выполняются обратные вызовыдля пользовательского интерфейса, который не существует в то время.
Вопрос: Должен ли я всегда отписываться от всех подписок на представление при изменении представления ИЛИ есть ли лучший способ сделать это?
Никаких основ / библиотек, в основном для целей обучения.
Ps.Поскольку я все еще новичок в этих шаблонах, я благодарен за любой совет, который может помочь улучшить мою концепцию.