静态元素上的 Vue 转换不起作用

Vue transition on static element not working

我正在尝试在 Vue 组件中将非常简单的 transition 应用到 div。该元素不依赖于状态或任何东西——它只需要在组件显示时从右侧滑入。出于某种原因,我设置的转换不起作用。

该组件在我的页面上显示为:

<MenuSideBar v-if="displayMenu" slide-right :items="menuItems />

在那个组件中,我有:

   <template> 
      <transition name="slide">
                <div v-if="slideRight" class="menu-container">
                    <div  class="menu-inner">
                        <Menu :items="items />
                    </div>
                </div>
            </transition>
   </template>

在我的 CSS 转换中,我有:

   .menu-container {
        left: 0;
        position: absolute;
        top: 0;
        width: 25vw;
    }
   .slide-enter{
        right: -1000px;
    }

    .slide-enter-active {
        transition: right 0.5s ease;
    }

    .slide-enter-to{
        right: 0;
    }

但是当显示这个组件时,那个元素上没有滑动过渡。

任何人都可以就我做错的地方提供任何建议吗?

为了完整起见,我将我的评论作为答案发布。

您似乎希望在首次呈现元素时发生过渡。为此,您需要添加 appear attribute:

<template> 
    <transition name="slide" appear>
            <div v-if="slideRight" class="menu-container">
                <div  class="menu-inner">
                    <Menu :items="items />
                </div>
            </div>
        </transition>
</template>