useRef é um gancho React que permite criar uma referência persistente a um valor ou elemento DOM. Ao contrário de useState, que é usado para gerenciar o estado que aciona novas renderizações, useRef é usado principalmente para efeitos colaterais ou para acessar elementos DOM diretamente.
O gancho useRef é particularmente útil para:
O gancho useRef retorna um objeto com propriedade .current. quando você chama useRef, ele cria uma referência persistente ao valor que você passa como argumento. Esta referência é armazenada na propriedade .current do objeto retornado.
Para criar uma referência basta chamar useRef com valor inicial.
import { useRef} from 'react' const App = () => { const countRef = useRef(0) return (...) } export default App
No exemplo acima, countRef é uma referência ao valor inicial 0.
Para acessar o valor de referência basta chamar o objeto countRef com a propriedade .current
import { useRef} from 'react' const App = () => { const countRef = useRef(0) const increment = () => { countRef.current } return () } export default AppCount: {countRef.current}
No exemplo acima, se você clicar no botão, ele chamará a função de incremento que aumentará o countRef, mas a contagem não será atualizada em
Count: {countRef.current}
porque a atualização useRef não cause novas renderizações como useState.atualize o código para o exemplo abaixo para obter o resultado esperado.
import { useRef, useState } from 'react' const App = () => { const countRef = useRef(0) const [count, setCount] = useState(0) const increment = () => { countRef.current setCount(countRef.current) } return () } export default AppCount: {count}
é possível usar o gancho useRef para acessar e alterar as propriedades dos elementos html
const App = () => { const inputRef = useRef(null) const handleFocus = () => { inputRef.current.focus() } return( ) }
Ao contrário de useState ou variável, useRef pode passar valores e dados entre re-renderizações, como dados em cache ou definições de configuração.
Em alguns casos, usar useRef pode ajudar na otimização de componentes, evitando novas renderizações desnecessárias. como se você tivesse um componente que renderiza uma grande lista de itens, você pode armazená-lo em cache usando useRef e modificar apenas a renderização dos itens que foram alterados.
Se você tentar passar uma referência para seu próprio componente assim
const inputRef = useRef(null); return;
Você pode receber um erro no console:
Aviso: Os componentes da função não podem receber referências. As tentativas de acessar esta referência falharão. Você pretendia usar React.forwardRef()?
Para resolver esse problema, envolva o componente personalizado com forwardRef assim:
const inputRef = useRef(null); return;
Componente personalizado:
import { forwardRef } from 'react'; const MyInput = forwardRef(({ value, onChange }, ref) => { return ( ); }); export default MyInput;
useRef é um gancho poderoso usado principalmente para uso de efeitos colaterais, como armazenar dados em cache entre re-renderizações ou acessar elementos do DOM. É uma ótima ferramenta para otimização de desempenho e obtenção de funcionalidades específicas na aplicação React.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3