Проверяет понимание механизма ререндера функциональных компонентов при вызове сеттера useState.
В React функциональный компонент перерендеривается каждый раз, когда вызывается функция-сеттер, полученная из хука useState. Это основной механизм обновления UI в ответ на изменения состояния.
React использует строгое сравнение Object.is для определения, изменилось ли значение состояния. Если новое значение отличается от предыдущего, компонент перерендеривается. Если значения одинаковы (например, при передаче того же объекта или примитива), ререндер не происходит.
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
const handleClick = () => {
setCount(count + 1); // ререндер произойдет
};
const handleSameValue = () => {
setCount(count); // ререндер НЕ произойдет, так как значение не изменилось
};
return (
<div>
<p>Count: {count}</p>
<button onClick={handleClick}>Increment</button>
<button onClick={handleSameValue}>Set same</button>
</div>
);
}setCount(prev => prev + 1)) React гарантирует, что будет использовано актуальное значение состояния.Вывод: Используйте useState для локального состояния компонента. Помните, что ререндер происходит только при изменении значения, а не при каждом вызове сеттера. Для сложных состояний используйте функциональную форму обновления.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию