在浏览器中通过 JavaScript 渲染内容,支持实时数据和高交互性
这个页面在浏览器中渲染,数据通过客户端 API 调用获取。
'use client'; // 必须添加这一行!
import { useState, useEffect } from 'react';
export default function ProductList() {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(true);
useEffect(() => {
// 在客户端获取数据
fetch('https://api.example.com/products')
.then(res => res.json())
.then(data => {
setData(data);
setLoading(false);
});
}, []);
if (loading) return <div>加载中...</div>;
return <div>{/* 渲染数据 */}</div>;
}2. 关键要点:'use client' 指令useState、useEffect 等 Hookswindow、document 等浏览器 API| 特性 | CSR | SSG |
|---|---|---|
| 渲染时机 | 浏览器运行时 | 构建时 |
| 数据新鲜度 | 实时最新 | 构建时的数据 |
| 首屏速度 | 较慢(需加载JS+数据) | 最快(纯HTML) |
| SEO | 不友好 | 非常友好 |
| 适用场景 | 用户仪表板、实时数据 | 博客、文档、产品页 |
完成实验后,建议查看页面源代码(右键 → 查看页面源代码), 对比 SSG 和 CSR 在 HTML 内容上的差异,理解它们的工作原理。