Что такое стратегия слабой связи между пакетами в большом модульном приложении React + Redux - PullRequest
0 голосов
/ 30 мая 2019

Цель

Я ищу React-Redux-совместимый способ действия или события в одной части большого модульного приложения для запуска логики в другой, слабо связанной части приложения.Что-то вроде системы Pub-Sub, совместимой с React, Redux и Redux Code Splitting .

Сценарий

  • У меня есть веб-приложение React + Redux, которое использует разбиение кода для отложенной загрузки нескольких пакетов во время выполнения.Пакеты содержат код для: пользовательского интерфейса, действий Redux, Redux-Thunks и Redux Reducers
  • Модуль Core имеет некоторую логику, которая позволяет пользователю создавать заметки, вводя текст в поле и нажимая кнопку
  • Я бы хотел, чтобы динамически загружаемые пакеты могли запускать пользовательскую логику при создании новых заметок.Это может включать побочные эффекты.Компонент пользовательского интерфейса может отображаться или отображаться на экране при создании заметок

Проблема

Как правило, в тесно связанных модулях создается создатель действий с избыточным потоком.(или аналогичный) может вызываться из модуля Core, чтобы инициировать побочные эффекты и отправлять связанные действия Redux по мере необходимости.Однако в случае динамически загружаемых пакетов ссылки на создателей избыточных действий недоступны.

Требования

  • Необходимо избегать прямых ссылок от модуля Core до динамических пакетов, чтобы не нарушать разбиение кода
  • Должен поддерживать "побочные эффекты", такие вызовы API, в получателе события
  • Должен позволить динамически загружаемой логике пакета отвечать, даже когда соответствующие компоненты пользовательского интерфейса в данный момент не отображаются

Идеи

  • Observables : Одна из идей заключается в использовании паттерна pub-sub с Observables, аналогичного описанному в этой статье .Тем не менее, я обеспокоен тем, что это может нарушить некоторые рекомендации React-Redux, нарушить «путешествия во времени» в инструментах разработчика Redux и привести к трудностям в обнаружении ошибок ... или, возможно, это не так.С шаблоном React-Redux я не уверен, какие побочные эффекты в порядке, и когда.
  • Redux Middleware : напишите какое-нибудь пользовательское промежуточное ПО Redux для поиска «Widget Creation»действия, а затем вызвать дополнительное поведение.Это похоже на изобретение колеса.

Я не большой поклонник ни одного из вышеперечисленных.Похоже, что есть гораздо более простой вариант, который мне не хватает

Спасибо за любую помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...