Извлечение из магазина вместо того, чтобы позволить родителю извлекать и доставлять через реквизит - PullRequest
1 голос
/ 19 января 2020

Слишком много раз при разработке компонента я задавался вопросом, должен ли компонент извлекать свои данные непосредственно из хранилища, или он был передан через реквизиты - предположительно, чтобы позволить родителю (или любому более высокому предку) извлекать его вместо этого. Кроме того, я не разделяю умные / немые компоненты. Что вы думаете об этом? Каковы компромиссы?

На мой взгляд, компромисс для прямой выборки по сравнению с передачей через props:

  • затрудняет проверку компонента , так как вам не нужно издеваться над магазином для каждого теста.
  • Означает меньший, более чистый код
  • Делает компонент менее переносимым, то есть вы не можете просто измените то, что выбрано из магазина все с одним useSelector затем передают данные через реквизиты, а не позволяют каждому элементу списка извлекать данные для себя)

1 Ответ

2 голосов
/ 19 января 2020

Если одни и те же данные используются многими компонентами, лучше получить их через хранилище. Другое преимущество состоит в том, что если существует необходимость передавать данные во вложенный компонент n-уровня, где n достаточно велико, лучше использовать хранилище, а не передавать реквизиты, поскольку это может упростить запись вашего компонента.

Вот почему я предпочитаю пользоваться магазином. Но это не общий ответ c. Можно иметь свое собственное восприятие этого.

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