Hooks in Depth
useRef basics
Keep a value without causing a render.
8 minutes - Intermediate to advanced
What this means
useRef stores a mutable value that survives renders. Changing a ref does not cause React to render again. Refs are also used to access DOM elements when needed.
In beginner terms, this topic answers one practical question: "What should I write, and why does React care about it?" Do not try to memorize the syntax first. First understand the idea, then connect the syntax to that idea.
Why it matters
Refs are useful for focusing inputs, storing timer ids, or keeping values that do not belong in visible UI state.
When you build real React screens, this idea helps you decide where data should live, what the user should see, and what should happen after an interaction. That is why this lesson is part of the main path instead of being an optional detail.
Step by step
1. Notice the UI problem this topic solves. 2. Look at the smallest possible example. 3. Change one value and predict what should appear. 4. Run the example and compare the result with your prediction. 5. Use the practice task before moving on.
Small example
const inputRef = React.useRef(null);Common mistake
Do not use refs for values that should appear on the screen. Use state for visible UI values.
Practice task
Create an input ref and focus the input when a button is clicked.
Remember this
State is for visible changes; refs are for persistent values that do not render.
try.it
Examples
Try it: useRef basics
Edit this focused React example and run it in the browser preview.
Preview runs React in a sandboxed browser frame, never on the server.
editor
preview
Login to save progress
You can read lessons without an account, but progress requires login.