为什么我在Next.js中使用响应条件渲染会出现渲染失真错误



我的DOM中有条件呈现,只有在满足移动断点时才会呈现。然而,我的网页仍然显示或不显示那些不应该显示的条件组件,或者页面完全扭曲。

根据这个博客:

服务器既不识别窗口也不识别文档。换言之,这意味着设备无法检测到强制性属性(如客户端的视口尺寸(,因此它需要以某种方式推断这些属性,也就是说,这是一种非常有限且不准确的响应方式。

例如,假设我们有一个使用matchMedia的应用程序(正如您可能知道的,这是一个Web API,它位于thewindow(以基于视口有条件地渲染组件尺寸。您希望服务器如何呈现标记没有窗户,即使假设它是以某种方式填充的,尺寸呢?一旦初始render包含一个响应组件,该组件受断点?

简单地说,这可能会导致服务器呈现我们的应用程序不正确,最终导致局部水合不匹配(即潜在的错误?(。

换句话说,由于它是服务器端的,它无法访问屏幕的尺寸。因此,最健壮的方法是简单地使用css媒体查询来有条件地呈现组件。

最新更新