Next.js 15 并行路由与路由拦截实践概述并行路由用于同时呈现多数据区;拦截路由用于模态/抽屉式导航。本文给出 RSC/PPR 协同与 SEO 配置示例。并行路由目录结构app/ layout.tsx @feed/(list)/page.tsx @sidebar/(summary)/page.tsx @modal/(viewer)/page.tsx // app/layout.tsx(并行插槽) export default function RootLayout({ children, feed, sidebar, modal }: any) { return ( <html lang="zh-CN"> <body> <main>{children}</main> <aside>{sidebar}</aside> <section>{feed}</section> <div id="modal-root">{modal}</div> </body> </html> ) } 路由拦截(模态)// app/@modal/(viewer)/[id]/page.tsx export default function Viewer({ params }: { params: { id: string } }) { return ( <dialog open> <img src={`/images/${params.id}.jpg`} alt="" /> <a href="/" aria-label="close">关闭</a> </dialog> ) } RSC/PPR 协同与 SEO Metadata// app/@feed/(list)/page.tsx export const dynamic = 'force-static' export const revalidate = 600 export default async function Feed() { const data = await fetch('https://api.example.com/feed', { cache: 'force-cache' }).then((r) => r.json()) return <ul>{data.map((x: any) => <li key={x.id}>{x.title}</li>)}</ul> } // app/generateMetadata.ts(或具体页面内) import type { Metadata } from 'next' export function generateMetadata(): Metadata { return { title: '并行路由与拦截路由实践', description: 'Next.js 15 RSC/PPR 与 SEO 协同' } } 技术参数与验证Node.js 20.x;浏览器:Chrome 120+PPR 命中率 > 85%;模态拦截导航耗时 < 50ms;FCP/LCP 保持稳定应用场景资讯门户:左侧摘要 + 主内容 + 模态查看控制台:主区操作 + 辅助区并行渲染注意事项并行插槽命名需与目录一致;拦截路由遵循可访问性Metadata 与站点地图需包含重要入口路径常见问题Q: 并行路由是否影响 SEO?A: 不直接影响,但需保障关键页面有可索引的 URL 与 Metadata。参考资料Next.js Parallel/Intercepting Routes 文档RSC/PPR 指南---发布信息:已发布 · 技术验证 · 阅读 36 分钟 · CC BY-SA 4.0

发表评论 取消回复