我不知道我的代码哪里出错了.这应该是一个简单的过渡.当我点击按钮时,信息正确显示,但是根本没有发生褪色转换.

<template>
    <div>
        <transition name="fade">
            <message v-show="showMessage" class="tr pop-up-message">
                <p slot="header">This is Header</p>
                <span slot="body">This is Body</span>
            </message>
        </transition>

        <div v-if="!showMessage" class="block" @click.prevent="showMessage = true">
            <a class="button is-primary">Primary</a>
        </div>
        <div v-else-if="showMessage" class="block" @click.prevent="showMessage = false">
            <a class="button is-primary">Primary</a>
        </div>
    </div>
</template>

<script>
    import message from './Message.vue'
    export default {
        components:{
            'message': message,
        }, 
        data(){
            return{
                showMessage: false
            }
        },
    }
</script>

推荐答案

您是否也添加了以下CSS:

.fade-enter-active, .fade-leave-active {
    transition: opacity .5s
}
.fade-enter, .fade-leave-to /* .fade-leave-active in <2.1.8 */ {
    opacity: 0
}

我试着用上面的CSS重现你的代码here,效果很好.

Vue.js相关问答推荐

我可以将Created()中内置的内容传递给Provide属性吗?

虚拟DOM在Vue中姗姗来迟

Vuetify快速失败不会阻止发送表单

vuejs:在确认提示之前更改 HTML

更新 Shopware 管理 CMS 组件中的编辑器视图

传单 vue3 组件变体打开错误的标记 - 单击时弹出

Vue composition api: 访问