【问题标题】:Vue transition works on router-view but not inside componentVue 过渡适用于路由器视图,但不适用于组件内部
【发布时间】:2020-06-05 06:55:15
【问题描述】:

当我设置一个典型的路由转换时,一切都按预期工作

<transition name="view" mode="out-in">
  <router-view />
</transition>

但如果我尝试将过渡放在视图中,则过渡不起作用

<template>
  <transition name="view" mode="out-in">
    <main>
      <...>
    </main>
  </transition>
</template>

任何想法为什么会出现这种情况?

【问题讨论】:

  • main 内部有什么要过渡的吗?
  • @SándorBakos 是的。抱歉,如果不清楚。为了简洁起见,我只是不想在帖子中包含整个模板
  • &lt;router-view&gt; 里面的main

标签: vue.js vuejs2 vue-router


【解决方案1】:

在我看来,问题在于&lt;main&gt; 元素没有进入或离开,因此它没有动画。您可能正在尝试对 &lt;main&gt; 元素中的某些内容进行动画处理,而 &lt;transition&gt; 伪元素并未将其作为目标。

我的建议是使用 transition 封装正在切换 (v-if) 或可见性切换 (v-show) 的元素

<template>
  <main>
    <transition name="view" mode="out-in">
      <...something with a v-if or a v-show>
    </transition>
  </main>
</template>

另外,如果您使用的是列表/数组 (v-for),您应该使用 transition-group

文档:https://vuejs.org/v2/guide/transitions.html

【讨论】:

    猜你喜欢
    • 2017-08-06
    • 2022-07-27
    • 2016-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2019-09-29
    • 1970-01-01
    相关资源
    最近更新 更多