搜索引擎和社交平台首先看到的是文档的 title 与 description,而不是页面里的 React 状态。Next.js 的 Metadata API 让这些字段可以按路由声明,也可以按动态参数生成。
静态页用导出的 metadata 对象即可。博客详情这种依赖 slug 的页面,则实现 generateMetadata,根据文章标题和摘要填充 title 与 description。
动态元数据
generateMetadata 拿到的 params 与页面组件一致。先按 slug 取出文章,再返回 Metadata。文章不存在时,既可以返回通用标题,也可以配合 notFound(),避免给 404 写出误导性的文章标题。
同一套 Mock 数据同时供列表、详情和元数据使用,能避免标题在列表和分享卡片上不一致。
还可以补什么
生产环境通常还会补 Open Graph 图、canonical、以及文章的 JSON-LD。对当前练习项目,先把 title 和 description 做对,就已经能体现 Metadata API 的用法。