ReactJS useRef Hook (original) (raw)

Last Updated : 08 Feb, 2025

The useRef Hook is a built-in React Hook that returns a mutable reference object (ref) that persists across renders. Unlike state variables, updating a ref does not trigger a component re-render.

**Syntax

const refContainer = useRef(initialValue);

Implementing the useRef hook

**1. Accessing the DOM using useRef hook.

In this example, we have a button called ACTION, whenever we click on the button the onClickHandler gets triggered and it focuses the textarea with the help of useRef hook.

JavaScript `

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

function App() { const focusPoint = useRef(null); const onClickHandler = () => { focusPoint.current.value = "The quick brown fox jumps over the lazy dog"; focusPoint.current.focus(); }; return (

ACTION
Click on the action button to focus and populate the text.
); }; export default App;

`

**Output

React JS useRef Hook

**In this example

2. Persisting Values Across Renders

In addition to accessing DOM elements, useRef is useful for storing values that persist across renders. A common use case is storing a previous value, such as the previous state or props.

JavaScript `

import React, { useState, useRef, useEffect } from "react"; function PreviousValue() { const [count, setCount] = useState(0); const prevCountRef = useRef();

useEffect(() => {
    prevCountRef.current = count;
}, [count]);

return (
    <div>
        <p>Current count: {count}</p>
        <p>Previous count: {prevCountRef.current}</p>
        <button onClick={() => setCount(count + 1)}>Increment</button>
    </div>
);

} export default PreviousValue;

`

**Output

Increment-operator

Persisting Values Across Renders

**In this example

Interesting Things About useRef Hook

When to Use useRef?

**You should use useRef when

useRef vs useState

While both useRef and useState can store values, they behave differently:

Performance Considerations

Using useRef correctly can enhance performance, but excessive use may introduce unnecessary complexity.