改版后旧路由仍指向旧实现
一、典型症状
- 新版列表/面板已经做好了,但点标题、点列表项、或直接开某个 URL 后,看到的还是老式编辑页。
- 新布局组件(如
ListColumn + ReaderSurface)明明存在,却只在部分路径出现。 - 表现像「功能缺失 / 没生效」,实际是两条渲染路径并存,用户走的是旧那条。
二、根因与排查
根因示例:notes/[slug]/page.tsx 仍引用旧的 NoteEditorPage,该页面完全绕过了原型的新布局,于是点击标题/列表后进入了旧编辑页。
排查顺序:
- 找到用户实际进入的那条 route 文件;
- 看它
import/ 渲染的是哪个组件(而不是看新组件写没写); - 对比新布局是否被该 route 引用——没被引用,就是没接上。
三、可迁移的判断
- 改版要按「入口清单」收口,不是按「新组件写完」收口。 同一个功能往往有多个入口(点标题、点列表项、直接访问 URL、旧书签),要逐个确认都指向新实现。
- 「新组件存在」≠「用户会用到它」。 判断界面行为要看入口路由指向谁,而不是仓库里有没有新代码。
- 旧 route 保留 = 一条隐形的旧路径,会让新版看起来「时好时坏」。
相关
- 功能缺失先确认运行的是哪份产物 —— 同一取向:先确认「用户实际碰到的是哪一份」,再查实现
- 仓库残留会误导对现状的判断 —— 「代码里有什么」不等于「运行时用什么」
- 存量不会自动跟上新逻辑 —— 改对代码 ≠ 修好现状;旧路径要单独带过来
- 改协议要同时改两端 —— 同一取向:入口/协议改了,所有指向它的地方都要一起改