【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 交互
• 路由跳转不生效

posted @ 2025-07-24 20:17  十三山入秋  阅读(39)  评论(0)    收藏  举报