【nextJs 'use client';】
Next.js 使用 App Router(即 app/ 目录)时默认所有组件是:
✅ 服务端组件(Server Component)
也就是说,默认组件在服务端渲染,不会发送到浏览器运行 JS,这样可以提升性能。但有些功能 必须在浏览器运行,例如:
• 使用 useState / useEffect / useRef
• DOM 操作
• 调用浏览器 API(如 localStorage, window, fetch to local API)
• 第三方依赖库(如 framer-motion, chart.js 等)
这些就必须在“客户端组件”中运行,这时候就要加:'use client';
如果你忘记加?
• 你会看到各种怪异的错误,比如:
• useEffect is not defined
• motion.div 报 undefined
• 浏览器不执行 JS 交互
• 路由跳转不生效

浙公网安备 33010602011771号