React Redux воссоздает всю Виртуальную DOM каждый раз, когда действие отправляется из Магазина? - PullRequest
0 голосов
/ 10 ноября 2018

Разве это не очень дорогое дело?

Например, если я нажал кнопку, которая переключает что-то ... Нужно ли React воссоздать всю Virtual DOM только для этого одного действия и показать его какхорошо?

1 Ответ

0 голосов
/ 10 ноября 2018

Когда вы вызываете React Redux connect для компонентов, вы заключаете их в компонент с именем Connect. Компонент читает хранилище из контекста <Provider>. Когда вы отправляете действие, хранилище Redux обновляется, в результате чего все компоненты connect получают новые реквизиты (определенные в mapStateToProps во время обновления магазина.

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

Остальное следует обычным правилам рендеринга React. Если оболочка HOC подключенного компонента подписывается на измененное поле хранилища, оно будет обновляться, что приведет к повторной визуализации подключенного компонента. Вы можете реализовать shouldComponentUpdate в подключенном компоненте, если не хотите, чтобы он повторно отображался.

Ссылки:

...