Sobes.tech
Middle

Uveďte příklady toho, co lze dělat s hookem useEffect, kromě odesílání požadavků na server.

sobes.tech AI

Odpověď od AI

  • Správa stavu záhlaví stránky (document.title).

  • Přihlášení a odhlášení k událostem prohlížeče (například změna velikosti okna, kliknutí mimo prvek):

    useEffect(() => {
      const handleResize = () => {
        console.log('Velikost okna se změnila');
      };
      window.addEventListener('resize', handleResize);
    
      return () => {
        window.removeEventListener('resize', handleResize);
      };
    }, []); // Prázdné pole závislostí: efekt se spustí jednou při montáži a odstraní při odmontáži.
    
  • Práce s místním úložištěm (čtení/zápis dat):

    useEffect(() => {
      const savedValue = localStorage.getItem('myInputValue');
      if (savedValue) {
        setInputValue(savedValue); // Předpokládá se, že existuje stav inputValue a funkce setInputValue
      }
    }, []); // Načtení hodnoty při montáži.
    
    useEffect(() => {
      localStorage.setItem('myInputValue', inputValue); // Uložení při změně inputValue.
    }, [inputValue]); // Závislost na inputValue.
    
  • Inicializace knihoven nebo komponent třetích stran.

  • Nastavení a čištění časovačů (setTimeout, setInterval):

    useEffect(() => {
      const timerId = setInterval(() => {
        console.log('Časovač běží');
      }, 1000);
    
      return () => {
        clearInterval(timerId); // Vyčištění intervalu při odmontování.
      };
    }, []);
    
  • Sledování změn v props nebo stavu a reakce na ně.

  • Zaostření na prvek při montáži komponenty:

    useEffect(() => {
      inputRef.current.focus(); // Předpokládá se, že existuje ref inputRef
    }, []);