Erreur Vuejs : l'arborescence DOM virtuelle rendue par le client ne correspond pas à celle rendue par le serveur
P粉006847750
2023-08-27 20:39:55
<p>J'utilise Nuxt.js/Vuejs dans mon application et je continue à recevoir cette erreur à différents endroits : </p>
<pre class="brush:php;toolbar:false;">L'arborescence DOM virtuelle rendue côté client ne correspond pas au contenu rendu par le serveur.
Cela est probablement dû à un balisage HTML incorrect, par exemple l'imbrication d'éléments au niveau du bloc dans <p>, ou un <tbody> manquant.
Éliminer l'hydratation et effectuer un rendu complet côté client.</pre>
<p>J'aimerais savoir quelle est la meilleure façon de déboguer cette erreur ? Est-ce un moyen de enregistrer/obtenir les arborescences DOM virtuelles du client et du serveur afin de pouvoir comparer et trouver où se trouve l'erreur ? </p>
<p>Mon application est volumineuse et la vérification manuelle est difficile. </p>
Pour moi, cette erreur s'est produite car dans 标签,我把
AsyncData
中获取数组列表并通过v-for
渲染
块中的 >v-for codez et résolvez le problèmeRéponse partielle : à l'aide de Chrome DevTools, vous pouvez localiser le problème et voir exactement quel élément en est la cause. Procédez comme suit (je l'ai fait en utilisant Nuxt 5.6.0 et Chrome 64.0.3282.186)
msg
.patch
中执行行上方 4 行的Hydro
函数调用上。将打开指向Hydrate
source.enchanted
函数中,从开头移动大约 15 行,并设置一个断点,在assertNodeMatch
返回后返回false
假
. Définissez-y un point d'arrêt et supprimez tous les autres points d'arrêt.enchanted
函数中停止。切换到 DevTools 控制台并评估elm
,然后评估vnode
. Ici, elm semble être un élément DOM rendu par le serveur et vnode est un nœud DOM virtuel. Elm imprime au format HTML afin que vous puissiez déterminer où l'erreur se produit.