Sobes.tech
Middle

Дайте примери за това какво може да се направи с hook useEffect, освен изпращане на заявки към сървъра.

sobes.tech AI

Отговор от 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
    }, []);