Principais Hooks do React

18/06/2024

Principais Hooks do React

Um hook no React é uma função especial que permite que você utilize funcionalidades do React, como estado e ciclo de vida, em componentes funcionais. Antes da introdução dos hooks no React 16.8, essas funcionalidades só estavam disponíveis em componentes de classe. Os hooks permitem que você escreva componentes de forma mais simples e reutilizável.

Principais Hooks do React

  1. useState: Permite adicionar estado a componentes funcionais.
  2. useEffect: Lida com efeitos colaterais, como assinaturas, fetching de dados e manipulação do DOM.
  3. useContext: Permite acessar o contexto do React e compartilhar valores entre componentes sem prop drilling.
  4. useReducer: Gerencia estados complexos com lógica semelhante ao Redux.
  5. useCallback: Memoiza funções, útil para otimização de desempenho.
  6. useMemo: Memoiza valores computados, evitando cálculos desnecessários.
  7. useRef: Cria referências mutáveis, geralmente usadas para acessar diretamente elementos DOM.
  8. useLayoutEffect: Similar ao useEffect, mas é executado de forma síncrona após todas as mutações do DOM.
  9. useImperativeHandle: Personaliza o valor da referência exposta ao usar forwardRef.

Exemplos de Uso

useState


  1. import React, { useState } from 'react';  
  2.   
  3. function Counter() {  
  4.   const [count, setCount] = useState(0);  
  5.   
  6.   return (  
  7.     <div>  
  8.       <p>You clicked {count} times</p>  
  9.       <button onClick={() => setCount(count + 1)}>  
  10.         Click me  
  11.       </button>  
  12.     </div>  
  13.   );  
  14. }  

useEffect


  1. import React, { useEffect, useState } from 'react';  
  2.   
  3. function Timer() {  
  4.   const [count, setCount] = useState(0);  
  5.   
  6.   useEffect(() => {  
  7.     const interval = setInterval(() => {  
  8.       setCount(count + 1);  
  9.     }, 1000);  
  10.   
  11.     return () => clearInterval(interval);  
  12.   }, [count]);  
  13.   
  14.   return <div>{count}</div>;  
  15. }  

Vantagens dos Hooks

  1. Simplicidade: Reduz a complexidade dos componentes de classe, tornando o código mais legível e fácil de entender.
  2. Reuso de Lógica: Hooks permitem compartilhar lógica de estado entre componentes sem modificar sua estrutura hierárquica.
  3. Melhoria de Desempenho: Hooks como useMemo e useCallback ajudam a otimizar componentes evitando cálculos e renderizações desnecessárias.

Regras dos Hooks

  1. Chamadas de Hooks no Topo: Chame hooks no topo do seu componente funcional. Não os chame dentro de loops, condições ou funções aninhadas.
  2. Somente em Componentes de Função: Use hooks apenas em componentes funcionais e custom hooks. Não os use em funções JavaScript regulares.

Custom Hooks

Você também pode criar seus próprios hooks para encapsular e reutilizar lógica complexa.



  1. import { useState, useEffect } from 'react';  
  2.   
  3. function useFetch(url) {  
  4.   const [data, setData] = useState(null);  
  5.   
  6.   useEffect(() => {  
  7.     fetch(url)  
  8.       .then(response => response.json())  
  9.       .then(data => setData(data));  
  10.   }, [url]);  
  11.   
  12.   return data;  
  13. }  
  14.   
  15. function App() {  
  16.   const data = useFetch('https://api.example.com/data');  
  17.   
  18.   return (  
  19.     <div>  
  20.       {data ? <pre>{JSON.stringify(data, null, 2)}</pre> : 'Loading...'}  
  21.     </div>  
  22.   );  
  23. }  

Agora você ja entendeu que Hooks são uma adição poderosa ao React que permitem que você adicione estado e outras funcionalidades aos componentes funcionais, mantendo o código limpo e organizado. Eles oferecem uma maneira eficiente de gerenciar a lógica de estado e efeitos colaterais, tornando o desenvolvimento com React mais flexível e modular.