把一个 Pages Router 项目分批迁到 App Router,前后折腾了快半年。最大的感受是:缓存边界和 "use client" 这两件事,文档轻描淡写,实际占了 80% 的坑。
中间遇到过几次经典翻车:
- 客户端组件里直接
fetch,被默认缓存导致数据不刷新。 params变成 Promise,老代码全得改。- metadata 的继承逻辑跟直觉不一样。
后来定了两条约定:默认全 Server Component,按需加 'use client';所有 fetch 显式带 { cache: 'no-store' } 或 revalidate。稳了很多。
想问问大家,App Router 你们是咋渐进迁移的?有没有更平滑的路径?