Назад к вопросам
Middle
75
questionbank

Приведи примеры того, что можно сделать с хукoм useEffect, кроме выполнения запросов на сервер.

Sobes Copilot

Получайте ответы в реальном времени

Ответ от нейросети

sobes.tech AI

  • Управление состоянием заголовка страницы (document.title).

  • Подписка и отписка от событий браузера (например, изменение размера окна, клики вне элемента):

    useEffect(() => {
      const handleResize = () => {
        console.log('Размер окна изменился');
      };
      window.addEventListener('resize', handleResize);
    
      return () => {
        window.removeEventListener('resize', handleResize);
      };
    }, []); // Пустой массив зависимостей: эффект выполняется один раз при монтировании и отписывается при размонтировании.
    
  • Работа с локальным хранилищем (чтение/запись данных):

    useEffect(() => {
      const savedValue = localStorage.getItem('myInputValue');
      if (savedValue) {
        setInputValue(savedValue); // Предполагается, что есть состояние inputValue и функция setInputValue
      }
    }, []); // Загрузка значения при монтировании.
    
    useEffect(() => {
      localStorage.setItem('myInputValue', inputValue); // Сохранение при изменении inputValue.
    }, [inputValue]); // Зависимость от inputValue.
    
  • Инициализация сторонних библиотек или компонентов.

  • Настройка и очистка таймеров (setTimeout, setInterval):

    useEffect(() => {
      const timerId = setInterval(() => {
        console.log('Таймер работает');
      }, 1000);
    
      return () => {
        clearInterval(timerId); // Очистка интервала при размонтировании.
      };
    }, []);
    
  • Отслеживание изменений пропсов или состояния и выполнение действий в ответ на эти изменения.

  • Фокусировка на элементе при монтировании компонента:

    useEffect(() => {
      inputRef.current.focus(); // Предполагается, что есть ref inputRef
    }, []);