fix(ssr): fix hydration for slot with empty text node

fix #5728
This commit is contained in:
Evan You
2022-05-19 12:35:29 +08:00
parent e1bc2681ef
commit 939209c6b5
2 changed files with 32 additions and 2 deletions

View File

@@ -110,7 +110,18 @@ export function createHydrationFunctions(
switch (type) {
case Text:
if (domType !== DOMNodeTypes.TEXT) {
nextNode = onMismatch()
// #5728 empty text node inside a slot can cause hydration failure
// because the server rendered HTML won't contain a text node
if (vnode.children === '') {
insert(
(vnode.el = document.createTextNode('')),
node.parentElement!,
node
)
nextNode = node
} else {
nextNode = onMismatch()
}
} else {
if ((node as Text).data !== vnode.children) {
hasMismatch = true