Sobes.tech
Middle

Dê exemplos do que se pode fazer com o hook useEffect, além de fazer solicitações ao servidor.

sobes.tech IA

Resposta da IA

  • Gestão do estado do título da página (document.title).

  • Subscrever e cancelar subscrição de eventos do navegador (por exemplo, alteração de tamanho da janela, cliques fora do elemento):

    useEffect(() => {
      const handleResize = () => {
        console.log('O tamanho da janela mudou');
      };
      window.addEventListener('resize', handleResize);
    
      return () => {
        window.removeEventListener('resize', handleResize);
      };
    }, []); // Array de dependências vazio: o efeito executa-se uma vez na montagem e limpa-se na desmontagem.
    
  • Trabalhar com armazenamento local (leitura/escrita de dados):

    useEffect(() => {
      const savedValue = localStorage.getItem('myInputValue');
      if (savedValue) {
        setInputValue(savedValue); // Assume-se que existe um estado inputValue e uma função setInputValue
      }
    }, []); // Carregar valor na montagem.
    
    useEffect(() => {
      localStorage.setItem('myInputValue', inputValue); // Guardar ao alterar inputValue.
    }, [inputValue]); // Dependência de inputValue.
    
  • Inicialização de bibliotecas ou componentes de terceiros.

  • Configuração e limpeza de temporizadores (setTimeout, setInterval):

    useEffect(() => {
      const timerId = setInterval(() => {
        console.log('O temporizador está a funcionar');
      }, 1000);
    
      return () => {
        clearInterval(timerId); // Limpeza do intervalo na desmontagem.
      };
    }, []);
    
  • Acompanhamento de alterações em props ou estado e execução de ações em resposta.

  • Focar em um elemento ao montar o componente:

    useEffect(() => {
      inputRef.current.focus(); // Assume-se que existe uma ref inputRef
    }, []);