vue icon indicating copy to clipboard operation
vue copied to clipboard

Vue SSR v-html on dynamic-component hydration warning

Open privatenumber opened this issue 3 years ago • 3 comments

Version

2.6.11

Reproduction link

The reproduction is updated to use Vue SSR without NUXT https://github.com/privatenumber/vue-ssr-vhtml-dyncomp-bug

Steps to reproduce

Dynamic.vue

<template>
  <component is="div">
    content necessary
  </component>
</template>

App.vue

<template>
  <dynamic v-html="'<div>trigger hydration warning</div>'" />
</template>

What is expected?

The expected behavior is for there to be no hydration warning when the SSR and client markup are identical.

What is actually happening?

Although there isn't a discrepancy in rendered HTML between client and SSR, it gives warnings that there is.

warningD warningE

Work around

I used a render function instead of a dynamic-component:

render(h) {
    return h(this.component, this.$slots.default);
}

Other info

Previous issue: https://github.com/vuejs/vue/issues/11532

privatenumber avatar Jul 22 '20 08:07 privatenumber