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 am Anni HUANG, a software engineer with 3 years of experience in IDE development and Chatbot.