Ralat Vuejs: Pepohon DOM maya yang diberikan pelanggan tidak sepadan dengan yang diberikan oleh pelayan
P粉006847750
2023-08-27 20:39:55
<p>Saya menggunakan Nuxt.js/Vuejs dalam apl saya dan saya terus mendapat ralat ini di tempat yang berbeza: </p>
<pre class="brush:php;toolbar:false;">Pokok DOM maya yang diberikan oleh pihak klien tidak sepadan dengan kandungan yang diberikan pelayan.
Ini berkemungkinan disebabkan oleh penanda HTML yang salah, contohnya meletakkan elemen peringkat blok di dalam <p>, atau kehilangan <tbody>.
Bailing hidrasi dan melakukan persembahan penuh sebelah pelanggan.</pre>
<p>Saya ingin tahu apakah cara terbaik untuk menyahpepijat ralat ini? Adakah ini cara saya boleh log/mendapatkan pokok DOM maya pelanggan dan pelayan supaya saya boleh membandingkan dan mencari di mana ralatnya? </p>
<p>Permohonan saya besar dan pengesahan manual adalah sukar. </p>
Bagi saya, ralat ini berlaku kerana dalam 标签,我把
AsyncData
中获取数组列表并通过v-for
渲染
块中的 >v-for kod dan selesaikan masalahJawapan separa: Menggunakan Chrome DevTools, anda boleh mencari masalah dan melihat dengan tepat elemen yang menyebabkannya. Lakukan perkara berikut (saya lakukan ini menggunakan Nuxt 5.6.0 dan Chrome 64.0.3282.186)
msg
.patch
中执行行上方 4 行的Hydro
函数调用上。将打开指向Hydrate
sumber.enchanted
函数中,从开头移动大约 15 行,并设置一个断点,在assertNodeMatch
返回后返回false
假
. Tetapkan titik putus di sana dan padamkan semua titik putus lain.enchanted
函数中停止。切换到 DevTools 控制台并评估elm
,然后评估vnode
. Di sini elm nampaknya elemen DOM yang diberikan pelayan, dan vnode ialah nod DOM maya. Elm mencetak ke HTML supaya anda boleh mengetahui di mana ralat berlaku.