Trabalhando com Referências Usando o Hook useRef
O hook useRef permite criar uma variável que armazena uma referência a um elemento, um valor ou qualquer outro dado que não afete a renderização do componente. Isso pode ser útil para armazenar valores mutáveis, acessar elementos do DOM ou preservar valores entre renderizações do componente.
Sintaxe:
Para utilizar o hook useRef, declara-se uma variável (refVariable) e atribui-se a ela o resultado da invocação de useRef(). Opcionalmente, pode-se fornecer um valor inicial (initialValue) como argumento para esse hook.
const refVariable = useRef(initialValue);
Nota
O valor atual pode ser acessado e atualizado utilizando a propriedade
refVariable.current. A vantagem douseRefé permitir a manipulação desses valores sem disparar uma nova renderização do componente.
Exemplo:
Vamos criar o componente FormInput que utiliza o hook useRef para criar uma referência a um elemento de entrada e foca nele quando um botão é clicado.
import React, { useRef } from "react";
const FormInput = () => {
const inputRef = useRef();
const handleClick = () => {
inputRef.current.focus();
};
return (
<div>
<input type="text" ref={inputRef} />
<button onClick={handleClick}>Focus Input</button>
</div>
);
};
Neste exemplo, o hook useRef cria uma referência chamada inputRef. Essa referência é atribuída ao atributo ref do elemento input, permitindo acessar o elemento input usando inputRef.current.
Explicação linha por linha:
- Linha 1: Importa-se o hook
useRefda biblioteca React para utilizar sua funcionalidade; - Linha 3: O componente
FormInputé definido utilizando a sintaxe convencional de função; - Linha 4: Inicializa-se a variável
inputRefutilizando o hookuseRef, representando a referência do campo de entrada; - Linhas 6-8: Esta função arrow do JavaScript gerencia a lógica ao clicar no botão, focando o cursor do usuário no campo de entrada;
- Linhas 10-15: O markup do componente é renderizado.
- Na linha 12, define-se a referência utilizando o atributo
refe atribui-se a variávelinputRefcomo valor;
- Na linha 12, define-se a referência utilizando o atributo
- O botão na linha 13 utiliza o atributo
onClickpara especificar a função a ser executada ao ser clicado, que neste caso é a funçãohandleClick.
Código completo do aplicativo:
1. Qual é o principal objetivo do hook useRef?
2. Qual das alternativas a seguir melhor descreve o comportamento de uma variável useRef quando seu valor é atualizado?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 2.17
Trabalhando com Referências Usando o Hook useRef
Deslize para mostrar o menu
O hook useRef permite criar uma variável que armazena uma referência a um elemento, um valor ou qualquer outro dado que não afete a renderização do componente. Isso pode ser útil para armazenar valores mutáveis, acessar elementos do DOM ou preservar valores entre renderizações do componente.
Sintaxe:
Para utilizar o hook useRef, declara-se uma variável (refVariable) e atribui-se a ela o resultado da invocação de useRef(). Opcionalmente, pode-se fornecer um valor inicial (initialValue) como argumento para esse hook.
const refVariable = useRef(initialValue);
Nota
O valor atual pode ser acessado e atualizado utilizando a propriedade
refVariable.current. A vantagem douseRefé permitir a manipulação desses valores sem disparar uma nova renderização do componente.
Exemplo:
Vamos criar o componente FormInput que utiliza o hook useRef para criar uma referência a um elemento de entrada e foca nele quando um botão é clicado.
import React, { useRef } from "react";
const FormInput = () => {
const inputRef = useRef();
const handleClick = () => {
inputRef.current.focus();
};
return (
<div>
<input type="text" ref={inputRef} />
<button onClick={handleClick}>Focus Input</button>
</div>
);
};
Neste exemplo, o hook useRef cria uma referência chamada inputRef. Essa referência é atribuída ao atributo ref do elemento input, permitindo acessar o elemento input usando inputRef.current.
Explicação linha por linha:
- Linha 1: Importa-se o hook
useRefda biblioteca React para utilizar sua funcionalidade; - Linha 3: O componente
FormInputé definido utilizando a sintaxe convencional de função; - Linha 4: Inicializa-se a variável
inputRefutilizando o hookuseRef, representando a referência do campo de entrada; - Linhas 6-8: Esta função arrow do JavaScript gerencia a lógica ao clicar no botão, focando o cursor do usuário no campo de entrada;
- Linhas 10-15: O markup do componente é renderizado.
- Na linha 12, define-se a referência utilizando o atributo
refe atribui-se a variávelinputRefcomo valor;
- Na linha 12, define-se a referência utilizando o atributo
- O botão na linha 13 utiliza o atributo
onClickpara especificar a função a ser executada ao ser clicado, que neste caso é a funçãohandleClick.
Código completo do aplicativo:
1. Qual é o principal objetivo do hook useRef?
2. Qual das alternativas a seguir melhor descreve o comportamento de uma variável useRef quando seu valor é atualizado?
Obrigado pelo seu feedback!