为什么这个极简主义的例子中的过渡不起作用? (它模仿我代码中的真实案例)
我想在VueJs 2中对自定义组件应用转换,具体取决于v-if条件。
我尝试将转换内部放入组件加载:
<loading v-if="shared.loading"></loading>
<template>
<transition name="slide-fade">
<div class="loading-container">
<div class="container-no-text">
<div class="title-no">Loading</div>
</div>
</div>
</transition>
</template>
<script>
import Store from '../store.js'
export default{
data () {
return {
shared: Store.state,
}
},
}
</script>
<style>
.slide-fade-enter-active {
transition: all .3s ease;
}
.slide-fade-leave-active {
transition: all .8s cubic-bezier(1.0, 0.5, 0.8, 1.0);
}
.slide-fade-enter, .slide-fade-leave-to
/* .slide-fade-leave-active for <2.1.8 */ {
transform: translateX(10px);
opacity: 0;
}
</style>
它根本不起作用,登录消失而没有任何动画。
我试图用JSFiddle模仿这种情况:
https://jsfiddle.net/er3tjyh0/
谢谢
答案 0 :(得分:1)
与vue.js中的转换实现相同,转换包装器组件允许您在以下上下文中为任何元素或组件添加进入/离开转换:
来自文档:
当插入或移除包含在过渡组件中的元素时,会发生以下情况:
这就是为什么转换只有在包裹v-if
时才会起作用,而不是在它内部时,它就是如何实现的。