Реагируйте на атомный дизайн с избыточностью - где в игру вступает избыточность? - PullRequest
0 голосов
/ 06 мая 2019

По моему мнению (что может быть, конечно, неправильно, и именно поэтому я пишу этот вопрос), сложно связать архитектуру атомарного проектирования и архитектуру редукса. Не поймите меня неправильно - просто следуйте за мной.

Атомный дизайн говорит, что все компоненты (кроме страниц) не должны иметь доступа к основному магазину приложений, и я согласен с этим. Тем не менее, они говорят, что к хранилищу могут быть подключены только элементы «Страницы» (в случае редукции - наличие mapStateToProps ). И это уже проблема, потому что, имея компонент List, состоящий из молекул Item, лучше иметь функцию соединения в single компоненте Item и получать одну сущность из хранилища, используя props.id. Почему это лучше в реальных приложениях? Потому что это помогает с производительностью. Какой атомный дизайн предлагаете здесь делать? Возьмите большую коллекцию из магазина на уровне «Страницы» и передайте ее в молекулу шаблона-> организм-> (наконец). То, что я вижу здесь - много ненужных повторных рендерингов, вызванных функцией mapStateToProps. Для более подробной информации, смотрите этот пост: https://github.com/reduxjs/redux/issues/1751

Я хотел бы решить эту проблему, и мое решение описано здесь:

Компоненты контейнера (те, которые имеют функцию connect func) также можно использовать повторно, поскольку функция mapStateToProps может обращаться к другому источнику хранилища, используя второй аргумент "ownProps". Почему бы не создать контейнерные компоненты на уровне молекул? Это также решает проблему проп-бурения. Или, если контейнерный компонент на уровне молекулы не является хорошей идеей - может быть, тогда составить контейнеры на уровне "организмов"? Я действительно не знаю, какой путь правильный, поэтому не могли бы вы помочь мне с ответом на вопрос - куда должен входить избыточный материал? Об этом не так много статей.

Заранее спасибо.

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