Just ran into an issue today when making a component with a custom
render() function and messing around with
vnodes passed in via
$slots. A seemingly simple template produced really odd results where some DOM elements would disappear, some would be duplicated, some would be out of order, and others would have their inner content ripped out to their outside after a few rerenders. Small template tweaks would also produce vastly different output, sometimes seemingly correct output.
You can see an example in this
After hours of debugging I found assigning a
v-bind:key to every element fixes it, kind of like how
v-for needs a
v-bind:key to work properly.