两个div元素之间的vue2转换

问题描述 投票:2回答:1

我发现转换在两个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元素来做..?

vue.js transition vuejs2
1个回答
17
投票

你应该将uniq key属性添加到div中以使其工作: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>
© www.soinside.com 2019 - 2024. All rights reserved.