// Нужно сделать новый компонент RandOnce на основе компонента Rand,

Чтобы компонент RandOnce выводил случайное число только один раз при первом рендере и не обновлялся каждые 3 секунды, можно использовать хук useState или useMemo для генерации числа один раз.

Короткий ответ

Что ответить на собеседовании

Чтобы компонент RandOnce выводил случайное число только один раз при первом рендере и не обновлялся каждые 3 секунды, можно использовать хук useState или useMemo для генерации числа один раз.

Подробный разбор

Ответ с пояснениями

Условие

// Нужно сделать новый компонент RandOnce на основе компонента Rand, // который при использовании в App // не будет обновлять случайное число каждые 3 секунды, а выведет случайно число только 1 раз.

// const Rand = () => {Math.random()}

Ответ

Чтобы компонент RandOnce выводил случайное число только один раз при первом рендере и не обновлялся каждые 3 секунды, можно использовать хук useState или useMemo для генерации числа один раз.

Пример реализации:

import React, { useState } from 'react';

const RandOnce = () => {
  const [random] = useState(() => Math.random());
  return <span>{random}</span>;
};

// Использование в App
const App = () => {
  return <RandOnce />;
};

Здесь useState с функцией инициализации гарантирует, что Math.random() вызовется только один раз при монтировании компонента, и значение сохранится при последующих рендерах.

Если исходный компонент Rand обновляет число каждые 3 секунды через таймер, то RandOnce просто не устанавливает такой таймер и сохраняет число постоянным.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее