Sobes.tech
Middle

Uveďte príklady toho, čo je možné robiť s hookom useEffect, okrem odosielania požiadaviek na server.

sobes.tech AI

Odpoveď od AI

  • Riadenie stavu hlavičky stránky (document.title).

  • Prihlásenie a odhlásenie z udalostí prehliadača (napríklad zmena veľkosti okna, kliknutia mimo prvku):

    useEffect(() => {
      const handleResize = () => {
        console.log('Veľkosť okna sa zmenila');
      };
      window.addEventListener('resize', handleResize);
    
      return () => {
        window.removeEventListener('resize', handleResize);
      };
    }, []); // Prázdny zoznam závislostí: efekt sa vykoná raz pri montáži a odstráni pri demontáži.
    
  • Práca s lokálnym úložiskom (čítanie/zápis dát):

    useEffect(() => {
      const savedValue = localStorage.getItem('myInputValue');
      if (savedValue) {
        setInputValue(savedValue); // Predpokladá sa, že existuje stav inputValue a funkcia setInputValue
      }
    }, []); // Načítanie hodnoty pri montáži.
    
    useEffect(() => {
      localStorage.setItem('myInputValue', inputValue); // Uloženie pri zmene inputValue.
    }, [inputValue]); // Závislosť od inputValue.
    
  • Inicializácia knižníc alebo komponentov tretích strán.

  • Nastavenie a čistenie časovačov (setTimeout, setInterval):

    useEffect(() => {
      const timerId = setInterval(() => {
        console.log('Časovač funguje');
      }, 1000);
    
      return () => {
        clearInterval(timerId); // Čistenie intervalu pri demontáži.
      };
    }, []);
    
  • Sledovanie zmien v props alebo stave a vykonávanie akcií ako reakcie.

  • Zameranie na prvok pri montáži komponentu:

    useEffect(() => {
      inputRef.current.focus(); // Predpokladá sa, že existuje ref inputRef
    }, []);