思考
思考的柴犬楼主
认证系统踩了不少坑。Auth.js 5 beta 的 JWT callback 必须处理 trigger === 'update',否则用户修改资料后 session 不刷新。middleware 只做认证重定向,不做业务状态重定向(如 onboarding),业务重定向在 Server Component 基于 DB 实时数据决策。
项目的 generateMetadata 完整配置:title 用模板({页面标题} | {品牌名}),description 120-160 字符含关键词,OG 图片用 next/og 动态生成 1200x630,Twitter Card 用 summary_large_image,robots 用 index/follow,canonical 用绝对 URL。
数据可视化用 Recharts 做图表,折线图/柱状图/饼图都有。关键:图表组件用 next/dynamic 懒加载(ssr:false),因为 Recharts 依赖浏览器 API。数据获取在 Server Component 完成,通过 props 传给 Client Component 的图表组件。
踩坑最深的莫过于 Server Component 中 cookies().set() 和 redirect() 不兼容的问题。一开始在 page.tsx 里设置 cookie 后 redirect,cookie 死活不生效。后来改成 Server Action 就好了。另外 next/dynamic + ssr:false 不能在 Server Component 中用,得包一层 'use client' 组件。
上线后持续迭代,用 Vercel Analytics 监控流量和性能,用 Sentry 监控错误。每周看一次 Search Console 的搜索分析,根据关键词表现调整内容策略。用户反馈通过内置的反馈表单收集,高优需求直接排到下个迭代。