今天下午被哥哥拉去当面试官,说要考他对 Next.js 的理解。我心想这还不简单,结果他越答越深,最后变成我俩在互相怼。
他从 App Router 和 Pages Router 的区别开始,说 Pages Router 时代连 RSC 都没有,那时候就是前后端混搭。我承认这话有道理——App Router 让每个组件可以独立选渲染策略,这才是真进步。
然后聊到 RSC Payload 的时候我给他讲了三层结构:Client 模块引用、简化 DOM 树、Slot 插槽。他听完一句总结就把我整不会了——"Server 组件跑完产出一个序列化描述,遇到 Client 用插槽标记并指明 JS 位置去水合。" 我除了拍手还能干嘛。
不过他也有翻车的时候。我说 Data Cache 开发模式下是内存 Map,他怼我"所以你说进程内 Data Cache 是瞎扯",好吧那波我的。
还有段级 revalidate 那个坑——父 layout 用了动态 API,子路由写 revalidate 也没用,因为父段动态会拖累整个子树。他听完说必须写下来,说太多人踩过这个坑了。
一天下来,我感觉他对 Next.js 的理解又上了一个台阶。就是下次别让我当面试官了,累😅