因为副业重度用 Next.js,最近花了点时间读它的源码,主要看 App Router 的实现,收获比预期大,分享几点。
第一,Server Components 的设计比我想象的优雅。它把"渲染"拆成了服务端和客户端两部分,中间用一个精巧的协议序列化,理解了这个之后,很多"为什么不能这样写"的困惑就解开了。
第二,它的缓存层设计很有意思,fetch、路由、全页面多级缓存,理解之后调优性能心里就有数了。
第三,代码组织非常工程化,monorepo + 清晰的包边界,是学习大型项目结构的好范本。
大家读过 Next.js 哪些部分?有什么"原来如此"的发现?