Neste artigo você aprenderá as diferenças entre useRef e createRef, recursos muito utilizados do React JS

Fala programador(a), beleza? Bora aprender mais sobre React JS!
O React proporciona uma série de recursos que facilitam a manipulação e o gerenciamento do DOM. Entre essas ferramentas, encontramos o useRef e o createRef.
Ambos são usados para acessar elementos do DOM de maneira direta, mas possuem características distintas e são recomendados para cenários específicos.
Neste artigo, vamos explorar as diferenças entre useRef e createRef no React, entendendo seus usos, benefícios e melhores práticas associadas.
O que é createRef?
O createRef foi introduzido no React 16.3 e serve para criar referências a elementos do DOM ou a componentes de classe.
Ao criar uma referência com createRef, podemos acessar diretamente o elemento ou componente de classe a que ela se refere.
Exemplo com createRef:
import React, { Component } from 'react';
class MeuComponente extends Component {
constructor(props) {
super(props);
this.minhaRef = React.createRef();
}
componentDidMount() {
console.log(this.minhaRef.current);
}
render() {
return <div ref={this.minhaRef}>Olá, Mundo!</div>;
}
}
O que é useRef?
Com a introdução dos Hooks no React 16.8, veio o useRef. Assim como o createRef, ele pode ser usado para acessar elementos do DOM, mas também pode manter uma referência “mutável” a um valor que não dispara uma nova renderização ao ser alterado. Isso o torna bastante flexível.
Exemplo com useRef:
import React, { useRef, useEffect } from 'react';
const MeuComponenteFuncional = () => {
const minhaRef = useRef(null);
useEffect(() => {
console.log(minhaRef.current);
}, []);
return <div ref={minhaRef}>Olá, Mundo!</div>;
}
Diferenças Chave entre useRef e createRef
1. Componentes de Classe vs Componentes Funcionais
createRef: Tradicionalmente usado com componentes de classe.useRef: Projetado para ser usado com componentes funcionais, embora também possa ser usado com classes.
2. Persistência de Referência
createRef: Cria uma nova referência em cada renderização.useRef: Mantém a mesma referência entre as renderizações.
3. Uso além do DOM
createRef: Principalmente usado para referenciar elementos do DOM ou componentes de classe.useRef: Pode ser usado para referenciar qualquer valor e não causa renderizações quando alterado.
Quando usar createRef ou useRef?
Apesar de suas diferenças, ambos têm seus lugares no ecossistema React:
- Use
createRefem componentes de classe onde você precisa de uma referência a um elemento do DOM ou componente de classe. - Use
useRefem componentes funcionais para os mesmos propósitos, ou quando você precisa manter uma referência a um valor sem disparar renderizações.
Quer aprender mais sobre programação? Conheça nosso canal no YouTube:
Conclusão
Entender as diferenças entre useRef e createRef é essencial para tomar decisões informadas sobre quando usar cada um no React.
Enquanto o createRef é tradicionalmente mais orientado para componentes de classe e cria uma nova referência em cada renderização, o useRef é a solução moderna para componentes funcionais, oferecendo mais flexibilidade ao manter referências a qualquer valor.
Ao escolher entre eles, considere o tipo de componente que você está usando e as necessidades específicas do seu caso de uso.
E, como sempre, consulte a documentação oficial do React e recursos confiáveis para se manter atualizado sobre as melhores práticas e novidades no mundo do React.
Está buscando em evoluir como Programador? Confira o nossos cursos de programação.