Назад к задачамПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Middle+
5
Повышение эффективности React‑компонента через ленивую инициализацию состояния
Условие задачи
В данном примере состояние компонента заполняется сразу же, вызывая ресурсоёмкую функцию при каждом рендере. Нужно переписать компонент так, чтобы тяжёлая функция вычислялась только один раз — при первом монтировании — и при этом пользователь мог увеличивать значение счётчика через кнопку.
const computeRandom = total => {
return Math.floor(Math.random() * total);
};
const LazyInit = props => {
const [value, setValue] = useState(computeRandom(props.count));
return (
<>
{value}
<button onClick={() => setValue(prev => ++prev)}>Increment</button>
</>
);
};