两个div元素之间的vue2转换

时间:2017-04-10 06:00:27

标签: vue.js transition vuejs2

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

1 个答案:

答案 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>