Subscribe on changes!

v-pre stripping attributes starting with "on-"

avatar
May 26th 2023

Vue version

3

Link to minimal reproduction

https://play.vuejs.org/#eNo9TdEKwjAM/JWjL1Nw7n0Wwf/YS3FRB11X2qwIpf9uZtkgcHdJ7i6rh/fXtJLqlY7PMHm+D46+fgmMkV5mtYw8OGA0bE7nyoFAvAa3K2CO7x7Nh6xdmktdltuGZXAyujuyRTDN3homUYAepwSmyFhc+8cptjtNrQ/1Dch5a0GROHF1YpOD7o4wVX53QESZ

Steps to reproduce

Visit the SFC Playground link and view the Elements panel with the developer tools. Inspect the rendered output.

I'm using the v-pre directive on an element with attributes, for example:

<div test on-test is-on-test v-pre>{{ msg }}</div>

What is expected?

I'd expect the rendered output to be:

<div test on-test is-on-test>{{ msg }}</div>

What is actually happening?

The rendered output is:

<div test is-on-test>{{ msg }}</div>

Note the absence of the on-test attribute.

System Info

No response

Any additional comments?

This also affects child elements of the element using v-pre.

I asked about this in the #vue-3-advanced discord channel on 5/25/2023 and they thought this was a bug as well.