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 createRef em componentes de classe onde você precisa de uma referência a um elemento do DOM ou componente de classe.
  • Use useRef em 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.

Subscribe
Notify of
guest

0 Comentários
Inline Feedbacks
View all comments