Sobes.tech
Middle

Pateikite pavyzdžių, ką galima daryti su useEffect hook'u, išskyrus užklausų siuntimą į serverį.

sobes.tech AI

Atsakymas iš AI

  • Puslapio antraštės būsenos valdymas (document.title).

  • Stebėjimas ir atšaukimas nuo naršyklės įvykių (pavyzdžiui, lango dydžio keitimas, paspaudimai už elemento ribų):

    useEffect(() => {
      const handleResize = () => {
        console.log('Lango dydis pasikeitė');
      };
      window.addEventListener('resize', handleResize);
    
      return () => {
        window.removeEventListener('resize', handleResize);
      };
    }, []); // Tuščias priklausomybių masyvas: efektas vykdomas vieną kartą montuojant ir atšaukiamas išmontuojant.
    
  • Darbas su vietiniu saugykla (duomenų skaitymas/rašymas):

    useEffect(() => {
      const savedValue = localStorage.getItem('myInputValue');
      if (savedValue) {
        setInputValue(savedValue); // Tikimasi, kad yra būsenos inputValue ir funkcija setInputValue
      }
    }, []); // Vertės įkėlimas montuojant.
    
    useEffect(() => {
      localStorage.setItem('myInputValue', inputValue); // Išsaugojimas keičiant inputValue.
    }, [inputValue]); // Priklausomybė nuo inputValue.
    
  • Trečiųjų šalių bibliotekų ar komponentų inicializavimas.

  • Timers (setTimeout, setInterval) nustatymas ir valymas:

    useEffect(() => {
      const timerId = setInterval(() => {
        console.log('Laikmatis veikia');
      }, 1000);
    
      return () => {
        clearInterval(timerId); // Intervalo išvalymas išmontuojant.
      };
    }, []);
    
  • Stebėjimas, kaip keičiasi props ar būsenos, ir veiksmų atlikimas šiuo pagrindu.

  • Fokusavimas į elementą montuojant komponentą:

    useEffect(() => {
      inputRef.current.focus(); // Tikimasi, kad yra ref inputRef
    }, []);