React工程实践
把交互留在需要它的地方
用服务端组件组织内容,只在按钮、菜单和主题切换处引入客户端状态。
888tools示例内容
示例文章,用于展示普通
.md文件也能参与同一套内容加载流程。
静态内容的边界
文章列表、标题、摘要和正文无需浏览器中的状态管理。App Router 默认的服务端组件适合处理这些内容,可以在构建或服务端渲染时准备页面。
什么时候使用客户端组件
按钮要响应点击,菜单要管理展开状态,主题切换需要读取浏览器里的偏好。这些组件适合使用 "use client"。
"use client";
import { useState } from "react";
export function ExampleCounter() {
const [count, setCount] = useState(0);
return <button onClick={() => setCount(count + 1)}>{count}</button>;
}在小范围内管理状态
把交互封装在组件内部,外围的内容页面就可以保持简单。遇到多个组件共享状态时,再把状态提升到它们共同的边界。
这是一种组织代码的方法,具体边界仍需要结合页面的实际交互决定。