2.6.11
https://codesandbox.io/embed/heuristic-brown-u7rvw?fontsize=14&hidenavigation=1&theme=dark
Cliquez sur la case à cocher.
Il devrait dire "BLUE BOX" avec une couleur de fond bleue.
Il est écrit "BLUE BOX" sans couleur de fond.
Le problème provient du fait que l'attribut data-v-* n'est pas réinitialisé pour le div blue_block lorsqu'il est échangé. Il utilise toujours l'attribut data-v-* du div enfant dans le composant fonctionnel. Ainsi, le style de la classe CSS ne s'applique pas.
Passer d'un composant fonctionnel à autre chose est utile. Par exemple, lors de l'affichage d'un simple composant de barre de chargement avant de passer à un composant plus complexe.
Je pense que cela peut avoir quelque chose à voir avec la façon dont Vue recycle les nœuds lors de la mise à jour. Pour contourner le problème, l'ajout d'un key
à la fois au composant et au div donne le comportement attendu.
Peut-être lié à https://github.com/vuejs/vue/issues/10416
test
Commentaire le plus utile
Je pense que cela peut avoir quelque chose à voir avec la façon dont Vue recycle les nœuds lors de la mise à jour. Pour contourner le problème, l'ajout d'un
key
à la fois au composant et au div donne le comportement attendu.