我理解服务器组件在服务器上进行完整的渲染,并且它们不包含在传输到客户端的 JS 包中。此外,服务器组件不会在客户端发生水合作用。
但是,我的不确定性在于客户端组件。
我承认客户端组件的处理可能因一个框架而异,与 Gatsby 等框架相比,Next.js 可能会以独特的方式处理它们。 我希望得到澄清,特别是在下一个应用程序路由器的上下文中。
我正在阅读 Josh W. Comeau 的这篇博客,其中 提到客户端组件在客户端和服务器端都呈现:
但是我似乎没有找到任何其他教程或博客(据我搜索)似乎承认上述内容。 下划线始终表示客户端组件是在客户端处理的。
这导致客户端组件的处理方式混乱? 100% 客户端还是客户端和服务器端?如果它是合法的部分客户端和服务器,那么它在 Next App 路由器的上下文中到底是如何发生的?
client
组件也会在服务器上静态呈现,以实现快速的初始加载时间。然后水合以增加这些组件的交互性 根据文档:
在服务器上: