Hooks
Os hooks são uma funcionalidade introduzida no React 16.8 que permite que componentes de função tenham acesso a recursos previamente disponíveis apenas para componentes de classe, como o estado (state) e o ciclo de vida do componente.
Existem vários hooks disponíveis no React, cada um com sua finalidade específica. Alguns dos hooks mais comuns são:
useState: é usado para adicionar estado a um componente de função. Ele retorna um array contendo o valor do estado e uma função que pode ser usada para atualizá-lo.
useEffect: é usado para executar efeitos colaterais em um componente de função. Ele é chamado após cada renderização do componente e pode ser usado para buscar dados, atualizar o DOM ou adicionar ou remover eventos.
useContext: é usado para obter dados de um contexto definido em um componente pai. Ele retorna o valor atual do contexto.
useReducer: é uma alternativa ao useState para gerenciar estados complexos. Ele retorna o estado atual e uma função de despacho que pode ser usada para atualizar o estado.
useCallback e useMemo: são usados para melhorar o desempenho de componentes de função que são renderizados várias vezes. useCallback é usado para memorizar funções e useMemo é usado para memorizar valores.
useRef: é usado para obter uma referência a um elemento do DOM ou a um valor que não será atualizado durante a renderização.
useLayoutEffect: é semelhante ao useEffect, mas é chamado antes da atualização do DOM e é útil para executar tarefas que exigem que o layout da página seja calculado.
useImperativeHandle: é usado para expor métodos públicos em um componente filho a um componente pai.
Os hooks são usados como funções chamadas dentro de componentes de função e são executados em ordem sempre que o componente é renderizado. Eles não podem ser usados em componentes de classe. Os hooks também podem ser combinados para criar comportamentos mais complexos em componentes de função.