Você sabe o que são os hooks do React? Veja os principais e entenda-os de uma vez

Você sabe o que são os hooks do React? Veja os principais e entenda-os de uma vez

React

Leitura de 3 minutos

React

Hooks

Iniciante

Publicado em 18 de Setembro de 2024

Inicialmente, vamos entender. O que são hooks? São funções do React que nos permitem utilizar recursos como gerenciamento de estados e efeitos colaterais em componentes funcionais, sem precisar escrever classes ou diversas linhas de código.

O que podemos fazer com eles? Bom, gerenciamento de estados, ações após a renderização, acessar estados globais e até mesmo, utilizar referências.

useState

Ele é quem nos permite controlar os estados de um componente. Ele retorna um par de valores: o valor atual do estado e uma função para atualizá-lo.

No exemplo abaixo, ele está sendo utilizado para gerenciar se uma certa cadeira já foi arremessada. Quando o usuário clicar em "Sim" ou "Não", o estado é atualizado e a resposta exibida será alterada.

function App() {
    // Iniciamos como falso, já que não aconteceu ainda
    const [cadeiraJaFoiArremessada, setCadeiraJaFoiArremessada] = useState(false)

    // Função para atualizar o estado para verdadeiro
    const confirmarArremesso = () => {
        setCadeiraJaFoiArremessada(true)
    }

    // Função para atualizar o estado para falso
    const negarArremesso = () => {
        setCadeiraJaFoiArremessada(false)
    }

    return (
        <div>
            <h1>A cadeira já foi remessada?</h1>
            <h2>Resposta: {cadeiraJaFoiArremessada ? 'Sim' : 'Não'}</h2>

            <button onClick={confirmarArremesso}>Sim</button>
            <button onClick={negarArremesso}>Não</button>
        </div>
    )
}

Existem outras maneira de se fazer isso ao invés de criar funções propriamente ditas e tornar tudo mais simples, como:

<button onClick={() => setCadeiraJaFoiArremessada(true)}>Sim</button>
<button onClick={() => setCadeiraJaFoiArremessada(false)}>Não</button>

Isso irá eliminar uma quantidade imensa de código desnecessário e a funcionalidade ainda será a mesma.

useEffect

Este hook nos permite executar efeitos colaterais em componentes, como chamadas de API e manipulação de DOM.

Ele roda uma vez após a renderização inicial do componente e pode ser configurado para ser disparado sempre que um valor no array de dependências mudar.

No exemplo abaixo, sempre que a variável cadeiraJaFoiArremessada for alterada, a função será executada.

useEffect(() => {
    if (cadeiraJaFoiArremessada) {
        alert('Arremessaram a cadeira')
    }
}, [cadeiraJaFoiArremessada])

useRef

Ele nos possibilidade criarmos uma referência mutável, a qual podemos associar a elementos do DOM, como inputs, sem precisar causar uma nova renderização do componente.

No exemplo abaixo, usamos o useRef para referenciar o campo de input e, com a função focarNoInput, podemos aplicar o foco diretamente utilizando o Javascript.

function App() {
    const inputRef = useRef(null)

    const focarNoInput = () => inputRef.current.focus()

    return (
        <div>
            <label>Quem arremessou a cadeira?</label>
            <input ref={inputRef} type="text" />
            <button onClick={focarNoInput}>Focar no input</button>
        </div>
    )
}

Curtiu o conteúdo? Fique à vontade para acrescentar ou perguntar algo útil para mim lá no Twitter/X, compartilhe com amigos e conhecidos caso esse conteúdo tenha sido útil. Até mais!

Fique atualizado!

Nunca perca um post ou anúncio de projeto que eu faça. Siga-me no Twitter para manter contato, fazer perguntas ou conversar.

Gostou do artigo? Faça um PIX de café! ☕