Ответ
В React компонент перерендеривается в следующих случаях:
- Изменение состояния (
setStateили хукиuseState,useReducer) - Изменение пропсов (новые значения от родителя)
- Изменение контекста (если компонент подписан через
useContext) - Принудительный ререндер через
forceUpdate()(в классовых компонентах) - Изменение зависимостей в хуках (
useEffect,useMemo,useCallback)
Пример с состоянием:
const [count, setCount] = useState(0);
// Вызов setCount вызовет ререндер
<button onClick={() => setCount(c => c + 1)}>Increment</button>
Важно: React использует виртуальный DOM и может пропустить фактическое обновление DOM, если ничего не изменилось (shallow сравнение).