Назад к задачам
СБЕРПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
3
Устранить баги и повысить эффективность
Компании, где спрашивали:
Условие задачи
В данном примере рассматривается простое React‑приложение, где главный функциональный компонент получает объект с данными и использует хуки useState и useEffect. Компонент запускает таймер, который каждую секунду увеличивает счётчик, а также выполняет некоторые тяжёлые расчёты, зависящие от остальных полей объекта.
Требуется исправить потенциальные проблемы (например, утечку ресурсов из‑за незавершённого интервала) и улучшить производительность, корректно задав зависимости в эффектах.
import { useEffect, useState, FC } from "react";
const userData = {
name: "54",
age: 21,
info: 22
};
const MainComponent: FC<typeof userData> = ({ name, ...restProps }) => {
const [counter, setCounter] = useState(0);
useEffect(() => {
const id = setInterval(() => {
setCounter(prev => prev + 1);
}, 1000);
return () => clearInterval(id);
}, []);
useEffect(() => {
// .... сложные вычисления, использующие restProps
}, [restProps]);
return <div>{counter}</div>;
};
export const App = () => <MainComponent {...userData} />;
Задача подразумевает рефакторинг кода, исправление ошибок и оптимизацию работы компонентов.