Проверяет понимание потока рендеринга в React при передаче функции обновления состояния в дочерний компонент.
В React состояние управляется на уровне компонента, где оно объявлено с помощью хука useState. Когда функция обновления состояния (setState) передается в дочерний компонент через пропсы и вызывается там, она изменяет состояние именно в родительском компоненте. Это запускает процесс повторного рендеринга, который начинается с родителя и распространяется вниз по дереву компонентов.
function Parent() {
const [count, setCount] = useState(0);
return (
<div>
<p>Count: {count}</p>
<Child onIncrement={() => setCount(c => c + 1)} />
</div>
);
}
function Child({ onIncrement }) {
console.log('Child re-rendered');
return <button onClick={onIncrement}>Increment</button>;
}При нажатии на кнопку в Child вызывается onIncrement, который обновляет count в Parent. Это приводит к повторному рендеру Parent и Child, что видно по сообщению в консоли.
Понимание этого механизма важно для оптимизации производительности React-приложений. Если дочерний компонент не должен перерендериваться при каждом изменении состояния родителя, используйте React.memo или выделите состояние в отдельный контекст.
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию