3 React Core Hooks: useEffect, useRef, useState

Anni HuangAnni Huang
1 min read

1. useEffect- Run code after render (side effects)

✅ Use when:

  • Fetching data after page load
  • Accessing window, localStorage, or other browser APIs
  • Setting up timers, subscriptions, or event listeners

2. useState – Track local component state (re-render)

✅ Use when:

  • Managing form inputs
  • Storing toggles, counters, fetched data
  • Triggering re-renders on state changes

3. useRef – Keep a mutable reference without triggering re-render (without triggering re-render)

✅ Use when:

  • Accessing a DOM element directly (e.g., input focus)
  • Storing a value that persists between renders without triggering re-render
  • Avoiding stale closures (e.g., in setInterval)

🧠 Summary: When to use what?

HookUse it for...Triggers re-render?
useEffectRunning side effects after renderNo
useStateTracking and updating component state triggering re-rendersYes
useRefStoring mutable data or accessing DOM elements without triggering re-renderNo
0
Subscribe to my newsletter

Read articles from Anni Huang directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Anni Huang
Anni Huang

I’m Anni Huang, an AI researcher-in-training currently at ByteDance, specializing in LLM training operations with a coding focus. I bridge the gap between engineering execution and model performance, ensuring the quality, reliability, and timely delivery of large-scale training projects.