我发现转换在两个div元素之间不起作用如下:
<transition name="fade">
<div v-if="show">111</div>
<div v-else>222</div>
</transition>
但如果只有一个div元素,则它可以工作:
<transition name="fade">
<div v-if="show">111</div>
<p v-else>222</p>
</transition>
是vue 2的错误吗?或者我只是不能将它与两个div元素一起使用?
如何用两个div元素来做..?
答案 0 :(得分:17)
您应该为div添加uniq key
属性以使其正常工作:https://jsfiddle.net/a8fv6rvp/1/
<script src="https://unpkg.com/vue/dist/vue.js"></script>
<div id="app">
<transition name="fade" mode="out-in">
<div v-if="show" key="1">111</div>
<div v-else key="2">222</div>
</transition>
<button @click="show = !show">Toggle</button>
</div>
new Vue({
el: '#app',
data: {
show: true
}
});
<style>
.fade-enter-active, .fade-leave-active {
transition: opacity .5s
}
.fade-enter, .fade-leave-to {
opacity: 0
}
</style>