Maison > interface Web > js tutoriel > le corps du texte

Comment déboguer l'erreur « Incompatibilité de l'arborescence DOM virtuelle » dans Vue.js/Nuxt.js ?

DDD
Libérer: 2024-11-15 03:28:02
original
983 Les gens l'ont consulté

How to Debug the

Dépannage de l'erreur « Incompatibilité de l'arborescence DOM virtuelle » dans Vue.js/Nuxt.js

L'arborescence DOM virtuelle rendue côté client ne correspond pas au contenu rendu par le serveur" peut se produire dans les applications Vue.js/Nuxt.js en raison d'un balisage HTML incompatible ou manquant éléments. Pour déboguer cela efficacement, il est nécessaire d'identifier l'élément spécifique à l'origine du problème.

Inspectez l'arborescence DOM à l'aide des outils de développement Chrome

  1. Ouvrez les outils de développement Chrome (appuyez sur F12).
  2. Accédez à la page déclenchant l'erreur.
  3. Faites défiler jusqu'à le message d'erreur dans la console.
  4. Cliquez sur le lien hypertexte de l'emplacement source (par exemple, vue.runtime.esm.js:574).
  5. Définissez un point d'arrêt sur cette ligne.
  6. Rechargez la page ou déclenchez à nouveau l'erreur.
  7. Pause sur le point d'arrêt, qui devrait être dans la fonction "patch" à l'intérieur "vue.runtime.esm.js."
  8. Définissez un point d'arrêt sur la ligne 15 dans la fonction "hydrate", où l'assertion échoue.
  9. Déclenchez à nouveau l'erreur et évaluez "elm" et "vnode" dans la console DevTools.
  10. Examinez le contenu HTML de "elm" et comparez-le à la représentation du nœud DOM virtuel de "vnode" pour trouver l'élément spécifique à l'origine de l'erreur.

Exemple d'incompatibilité HTML :

<div>
  <p>Server-rendered content <a>incorrectly nested inside</a></p>
</div>
Copier après la connexion

Représentation de l'arborescence DOM virtuelle :

h createElement(
  "div",
  // ...props
  [
    h(
      "p",
      // ...props
      [
        h(
          "a",
          // ...props
          "incorrectly nested inside"
        ),
      ],
    ),
  ],
)
Copier après la connexion

L'erreur se produit car dans l'arborescence DOM virtuelle rendue côté client, le est un enfant direct de l'élément

, tandis que dans le contenu rendu par le serveur, il est imbriqué dans l'élément

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal