【问题标题】:Ignore this error ==> The client-side rendered virtual DOM tree is not matching server-rendered content忽略此错误 ==> 客户端渲染的虚拟 DOM 树与服务器渲染的内容不匹配
【发布时间】:2020-10-30 02:56:55
【问题描述】:

如何进行全面补液? 当有一个 if 子句时,这种情况一直发生,我只在客户端使用该变量来延迟请求。 遇到此错误时,它会停止整个客户端应用程序在生产环境中运行(Hydrating)!

如果有必要的话,我需要它在应用程序上进行一次完全补水,就像在开发模式下一样,它工作得非常好! Note that on elements without the data-server-rendered attribute, hydration can also be forced by passing true to the hydrating argument of $mount

【问题讨论】:

    标签: vue.js nuxt.js server-side-rendering vue-ssr


    【解决方案1】:

    您可以通过以下方式之一避免该错误:

    • 调整您的标记,使错误不会发生。我在渲染没有<thead> 和<tbody> 的<table>s 时看到了这个错误。添加缺失的标记可以解决问题。
    • 用<client-only> 包装您受影响的标记,以故意仅在客户端呈现标签或组件

    【讨论】:

    • 因为实在没办法解决,所以决定想办法强制补水。
    • 直到我将完整的页面组件包装在 中才抛出错误,它在开发模式下警告我控制台中的错误,即使有一个空的
      。跨度>
    • 如果您要将整个页面包装在 中,您甚至可以不使用 SSR。我会尝试通过暂时删除页面的块直到错误没有发生,然后修复特定问题来将标记缩小到有错误的部分。 Nuxt 不会引发开箱即用的不匹配错误,因此您的应用程序的某些部分会导致它。在这种情况下,用 包裹页面部分是一种创可贴。
    • 我只发现我的项目存在问题,因为我使用的是 Vue ssr 而不是 Nux。 \n 解决方案是将 "serverPrefetch" 替换为 "fetch" 。在大多数情况下,错误似乎消失了
    猜你喜欢
    相关资源
    最近更新 更多
    热门标签