Sobes.tech
Middle

Fornisci esempi di cosa si può fare con l'hook useEffect, oltre a effettuare richieste al server.

sobes.tech AI

Risposta dell'AI

  • Gestione dello stato dell'intestazione della pagina (document.title).

  • Iscrizione e cancellazione dall'ascolto di eventi del browser (ad esempio, cambio di dimensione della finestra, clic esterni all'elemento):

    useEffect(() => {
      const handleResize = () => {
        console.log('La dimensione della finestra è cambiata');
      };
      window.addEventListener('resize', handleResize);
    
      return () => {
        window.removeEventListener('resize', handleResize);
      };
    }, []); // Array di dipendenze vuoto: l'effetto si esegue una volta al montaggio e si pulisce al smontaggio.
    
  • Lavorare con lo storage locale (lettura/scrittura dati):

    useEffect(() => {
      const savedValue = localStorage.getItem('myInputValue');
      if (savedValue) {
        setInputValue(savedValue); // Si assume che ci sia uno stato inputValue e una funzione setInputValue
      }
    }, []); // Caricare il valore al montaggio.
    
    useEffect(() => {
      localStorage.setItem('myInputValue', inputValue); // Salvare al cambiamento di inputValue.
    }, [inputValue]); // Dipendenza da inputValue.
    
  • Inizializzazione di librerie o componenti di terze parti.

  • Configurazione e pulizia di timer (setTimeout, setInterval):

    useEffect(() => {
      const timerId = setInterval(() => {
        console.log('Il timer è in funzione');
      }, 1000);
    
      return () => {
        clearInterval(timerId); // Pulizia dell'intervallo al smontaggio.
      };
    }, []);
    
  • Monitoraggio delle modifiche di props o stato e esecuzione di azioni in risposta.

  • Messa a fuoco su un elemento al montaggio del componente:

    useEffect(() => {
      inputRef.current.focus(); // Si assume che ci sia un ref inputRef
    }, []);