Использование mapStateToProps
в вашем вызове connect()
означает, что вы хотите, чтобы ваш компонент был уведомлен об изменении магазина - это произойдет независимо от того, изменился небольшой интересующий вас фрагмент или нет. В дополнение к этому, react-redux
предотвращает ненужную повторную визуализацию, выполняя поверхностное сравнение объекта, возвращенного mapStateToProps
, и предыдущих операций.
Глядя на ваш пример, подобные сценарии newProp: []
будет каждый раз создавать новый массив, поэтому не удастся выполнить поверхностное сравнение, поскольку массивы - это разные экземпляры.
Стоит ли беспокоиться об этом излишних повторных рендерингах?
React не заботитсяповторное рендеринг компонентов излишне, поэтому, даже если render
вызывается снова, пока props
к указанному компоненту фактически не изменился, React не будет выполнять никакой дополнительной работы.Вероятно, можно с уверенностью сказать, что для большинства приложений ненужные повторные рендеринг не так уж и серьезны.
Если вы чувствуете, что это повлияет на ваше приложение, или вы просто хотите узнать больше о способахчтобы уменьшить его, есть множество материалов по теме производительности: