将vue过渡与多个v-show一起使用

xwbd5t1u  于 2023-03-13  发布在  Vue.js
关注(0)|答案(1)|浏览(257)

我使用下面的代码来显示一个 backbone 加载器,当它完成时,它需要淡出,而另一个div淡入,在它的位置。

<transition name="fade" mode="out-in">
  <b-skeleton-table
    v-show="showSkeletons"
    :rows="5"
    :columns="4"
    :table-props="{ bordered: true, striped: true }"
  />

  <div v-show="showPageContent">
    <slot name="content" />
  </div>

  <div v-show="showEmptyState">
    <slot name="empty-state" />
  </div>
</transition>

我不得不使用v-show,因为内容槽有时包含一个带有数据的表,无论返回的表是否有0行或更多行,它都会发出一个值,根据这个结果,我想显示空状态与否。
但是文档声明transitions不能用于multiple,并且需要一个v-if指令,因为v-if不呈现里面的数据,所以我不能使用这个指令,因为我需要从内容槽发出的数据。

0lvr5msh

0lvr5msh1#

由于您试图转换多个元素,我认为您可能需要考虑使用transition-group
Here is a StackBlitz,希望能为您提供一些灵感。您应该能够交换v-show以使用v-if(如果)您需要该功能。

相关问题