fullstack-development / react-redux-starter-kit

Modular starter kit for React+Redux+React Router projects.
https://demo.fullstack-development.com/
MIT License
91 stars 13 forks source link

Выпилить FeatureConnector. Заменить на фабрику фич #145

Open sk1e opened 4 years ago

sk1e commented 4 years ago

Недостатки в слое по работе с фичами на данный момент:

Предлагаю оформить асинхронную загрузку фич фабриками, где каждая фича предоставляет свою фабрику.

Фабрика принимает имя инстанса в человекочитаемом формате - строкой которая отражает расположение или область ответственности инстанса фичи.

Фабрика возвращает промис инстанса фичи.

Фабрика автоматически генерирует весь слой по загрузке фичи, по разрешению экшенов относительно редьюсеров своего инстанса.

Фабрика используется в компонентах модулях совместно со специальными реакт-хуками которые управляют стейтом загрузки инстанса.

Таким образом фабрика исправляет все недостатки, изложенные в начале.

Также предлагаю обсудить тут причины выпила предыдущей реализации мультиинстанс фичи. Какими критериями руководствовались?

sk1e commented 4 years ago

Частично покрывает https://github.com/fullstack-development/react-redux-starter-kit/issues/76

in19farkt commented 4 years ago

мультиинстанс вынесли в отдельны репозиторий просто и должны были завернуть в npm пакет https://github.com/fullstack-development/redux-multi-connect

in19farkt commented 4 years ago

По поводу фабрики, я уже использовал похожий подход. дополнительно к FeatureConnector писал хелпер getAsyncContainer, который вызывал в индексе асинхронной фичи и там формировал асинхронные контейнеры. И получается везде где мы юзали асинхронные фичи, мы сразу забирали уже подготовленный AsyncContainer из самой фичи.

export const AsyncSomethingContainer = getAsyncContainer(loader, 'SomethingContainer');