Client-Side Data Fetching in Next.js

Client-side data fetching happens inside the browser after the page loads. It is used when data is dynamic or user-driven.

What is Client-Side Data Fetching?

A Client Component fetches data using browser-side tools likeuseEffect. The UI updates after the data arrives.

How does it work?

"use client";

import { useEffect, useState } from "react";

export default function Users() {
  const [users, setUsers] = useState([]);

  useEffect(() => {
    fetch("https://jsonplaceholder.typicode.com/users")
      .then(res => res.json())
      .then(data => setUsers(data));
  }, []);

  return (
    <ul>
      {users.map(user => (
        <li key={user.id}>{user.name}</li>
      ))}
    </ul>
  );
}

The browser loads the page first, then fetches data and updates the UI.

Why use Client-Side Data Fetching?

Real-World Example

A social media feed loads additional posts after login or when a user clicks “Load More”.

Interview Tip

Client-side data fetching runs in the browser after rendering, ideal for interactive or user-driven data updates.