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.
Melhores práticas e considerações
const inputRef = useRef(null); returnVocê 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()?
const inputRef = useRef(null); returnComponente personalizado:;
const inputRef = useRef(null); returnConclusão;
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