gpt4 book ai didi

server-side-rendering - Nuxt如何调试: The client-side rendered virtual DOM tree is not matching server-rendered content

转载 作者:行者123 更新时间:2023-12-04 17:31:17 52 4
gpt4 key购买 nike

所以在我的 Nuxt universal-mode 应用程序中,我有时会出现错误:

vue.runtime.esm.js:620 [Vue warn]: The client-side rendered virtual DOM tree is not matching server-rendered content. This is likely caused by incorrect HTML markup, for example nesting block-level elements inside <p>, or missing <tbody>. Bailing hydration and performing full client-side render.

通常会出现第二个(实际上第二个有时会在没有第一个的情况下上升,而不是相反):

TypeError: Cannot read property 'toLowerCase' of undefined
at emptyNodeAt (vue.runtime.esm.js:5851)
at VueComponent.patch [as __patch__] (vue.runtime.esm.js:6492)
at VueComponent.Vue._update (vue.runtime.esm.js:3933)
at VueComponent.updateComponent (vue.runtime.esm.js:4048)
at Watcher.get (vue.runtime.esm.js:4467)
at new Watcher (vue.runtime.esm.js:4456)
at mountComponent (vue.runtime.esm.js:4061)
at VueComponent.Vue.$mount (vue.runtime.esm.js:8399)
at init (vue.runtime.esm.js:3115)
at hydrate (vue.runtime.esm.js:6362)

然后没有任何效果,因为当我点击我的应用程序中的另一个页面时,我得到:

client.js:134 TypeError: Cannot read property '_transitionClasses' of undefined
at Array.updateClass (vue.runtime.esm.js:6799)
at patchVnode (vue.runtime.esm.js:6298)
at updateChildren (vue.runtime.esm.js:6177)
at patchVnode (vue.runtime.esm.js:6303)
at updateChildren (vue.runtime.esm.js:6177)
at patchVnode (vue.runtime.esm.js:6303)
at updateChildren (vue.runtime.esm.js:6177)
at patchVnode (vue.runtime.esm.js:6303)
at updateChildren (vue.runtime.esm.js:6177)
at patchVnode (vue.runtime.esm.js:6303)

我基本上理解为什么会发生这种情况,但当它发生时,我不知道从哪里开始,因为错误消息没有给出任何关于实际上是什么的提示 服务端版本和客户端版本的区别。

所以当这个问题出现时,我唯一能做的就是回滚到以前的 git 提交,直到问题自行解决......不幸的是,这并不能很好地工作,因为有时错误会出现在它原来的代码版本上以前没有。

通常解决方案是删除尽可能多的东西(.nuxtnode_install)并从头开始设置一切,希望它能再次工作。

最后我的评论/问题是:

  • 当出现客户端版本与服务器端版本不匹配错误时,为什么我们不能提供有关哪些差异的更详细信息?
  • 知道为什么这个错误作为一个整体以这种不确定的方式发生吗?
  • 为什么这会破坏一切,而一开始这只是一个警告?

对我来说,这对于生产应用程序来说是一个非常大的问题,因为它无法确定地修复。

最佳答案

显然在我的例子中,TypeError: Cannot read property 'toLowerCase' of undefined 错误在错误报告时上升。

我碰巧在另一个上下文中收到 The client-side rendered virtual DOM tree is not matching server-rendered content 警告,我确实收到了有用的解释并且它没有阻止执行所以我会考虑bug-over-the-bug 运气不好,最终会自然修复,除非它在未来重现。

如果你碰巧遇到同样的错误,不要绝望

首先,向 nuxt 仓库报告 TypeError: Cannot read property 'toLowerCase' of undefined 错误。

然后,为了进行调试,我鼓励您对模板的某些部分进行注释,以了解如何消除错误。在我的例子中,它在布局中,因此它一直发生,但一旦我明白了这一点,我很快就找到了解释(尽管它是 date- 的一个神秘的不同行为- fns 在节点环境和浏览器之间)。

祝你好运!

关于server-side-rendering - Nuxt如何调试: The client-side rendered virtual DOM tree is not matching server-rendered content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59409517/

52 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com