以下是一个简单的例子,演示了 Vue.js 2.0 中如何使用过渡状态:
<template>
<div>
<transition
name="fade"
@before-enter="beforeEnter"
@enter="enter"
@after-enter="afterEnter"
@before-leave="beforeLeave"
@leave="leave"
@after-leave="afterLeave"
@before-appear="beforeAppear"
@appear="appear"
@after-appear="afterAppear"
appear
>
<p v-if="show" key="content">Hello, Vue!</p>
</transition>
<button @click="toggleShow">Toggle</button>
</div>
</template>
<script>
export default {
data() {
return {
show: true
};
},
methods: {
toggleShow() {
this.show = !this.show;
},
beforeEnter(el) {
// 进入动画之前的钩子函数
console.log('beforeEnter');
},
enter(el, done) {
// 进入动画时的钩子函数
console.log('enter');
done(); // 这个回调函数用于通知 Vue 进入动画结束
},
afterEnter(el) {
// 进入动画结束后的钩子函数
console.log('afterEnter');
},
beforeLeave(el) {
// 离开动画之前的钩子函数
console.log('beforeLeave');
},
leave(el, done) {
// 离开动画时的钩子函数
console.log('leave');
done(); // 这个回调函数用于通知 Vue 离开动画结束
},
afterLeave(el) {
// 离开动画结束后的钩子函数
console.log('afterLeave');
},
beforeAppear(el) {
// 初始渲染时的动画之前的钩子函数
console.log('beforeAppear');
},
appear(el, done) {
// 初始渲染时的动画时的钩子函数
console.log('appear');
done(); // 这个回调函数用于通知 Vue 初始渲染时的动画结束
},
afterAppear(el) {
// 初始渲染时的动画结束后的钩子函数
console.log('afterAppear');
}
}
};
</script>
<style>
.fade-enter-active, .fade-leave-active, .fade-appear-active {
transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to, .fade-appear-to {
opacity: 0;
}
</style>
在上述例子中,通过使用 <transition> 组件的各种钩子函数,你可以在不同的阶段执行自定义逻辑。同时,通过设置 appear 特性为 true,Vue.js 会在初始渲染时触发相应的过渡效果。请注意,在 CSS 中设置过渡样式,这里以 opacity 为例。你可以根据需要设置其他样式。
转载请注明出处:http://www.zyzy.cn/article/detail/4808/Vue