Data loaded after component mount (useEffect)
💡 Note: Users see a blank page/loading for 3 seconds until API returns data. Then interaction is very smooth!
Loading data from client side...
⏱️ Expected load time: ~3 seconds
'use client'; // CSR directive
import { useState, useEffect } from 'react';
export default function CSRDemo() {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
// Fetch data after component mounts
fetchData()
.then(setData)
.finally(() => setLoading(false));
}, []);
if (loading) return <div>Loading...</div>;
return (
<div>
{data.map(item => (
<div key={item.id}>{item.title}</div>
))}
</div>
);
}