Skip to content
26 / 98

Почему нельзя напрямую изменять состояние компонента, а следует использовать setState или хук состояния?

React не отслеживает мутации объектов. Когда ты пишешь state.count = 5, React не знает, что что-то изменилось, и не запускает ре-рендер. Только setState (или setter из useState) ставит обновление в очередь React и запускает процесс reconciliation: построение нового Virtual DOM, сравнение с предыдущим и обновление реального DOM. Прямая мутация также ломает оптимизации вроде React.memo и shouldComponentUpdate, которые сравнивают ссылки.

Почему нельзя напрямую изменять состояние компонента, а следует использовать setState или хук состояния? | JScriptiser