当前位置:首页 > VUE

vue实现过度切换

2026-01-17 06:16:38VUE

使用 Vue 过渡组件实现动画切换

Vue 提供了内置的 <transition><transition-group> 组件,用于在元素或组件进入/离开 DOM 时应用动画效果。

<transition name="fade">
  <div v-if="show">内容</div>
</transition>
.fade-enter-active, .fade-leave-active {
  transition: opacity 0.5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}

过渡类名说明

Vue 会自动为过渡元素添加以下类名:

  • v-enter: 进入过渡的开始状态
  • v-enter-active: 进入过渡的激活状态
  • v-enter-to: 进入过渡的结束状态
  • v-leave: 离开过渡的开始状态
  • v-leave-active: 离开过渡的激活状态
  • v-leave-to: 离开过渡的结束状态

可以通过 name 属性替换默认的 v 前缀。

vue实现过度切换

JavaScript 钩子实现复杂动画

<transition
  @before-enter="beforeEnter"
  @enter="enter"
  @after-enter="afterEnter"
  @enter-cancelled="enterCancelled"
  @before-leave="beforeLeave"
  @leave="leave"
  @after-leave="afterLeave"
  @leave-cancelled="leaveCancelled"
>
  <div v-if="show">内容</div>
</transition>
methods: {
  beforeEnter(el) {
    // 进入前
  },
  enter(el, done) {
    // 进入中
    done() // 调用表示动画完成
  },
  // 其他钩子...
}

列表过渡使用 transition-group

当需要渲染整个列表时,使用 <transition-group> 组件:

<transition-group name="list" tag="ul">
  <li v-for="item in items" :key="item.id">
    {{ item.text }}
  </li>
</transition-group>

初始渲染过渡

添加 appear 属性可以使初始渲染也有过渡效果:

vue实现过度切换

<transition appear>
  <!-- 内容 -->
</transition>

第三方动画库集成

可以方便地集成 Animate.css 等动画库:

<transition
  enter-active-class="animate__animated animate__bounceIn"
  leave-active-class="animate__animated animate__bounceOut"
>
  <div v-if="show">内容</div>
</transition>

过渡模式设置

通过 mode 属性控制进出过渡的顺序:

  • in-out: 新元素先过渡进入,完成后当前元素过渡离开
  • out-in: 当前元素先过渡离开,完成后新元素过渡进入
<transition mode="out-in">
  <!-- 内容 -->
</transition>

标签: vue
分享给朋友:

相关文章

vue实现星星

vue实现星星

实现星星评分的Vue组件 使用Vue实现星星评分功能可以通过组件化方式完成,以下是一个完整的实现方案: 模板部分 <template> <div class="star-ra…

vue实现jqueryui

vue实现jqueryui

Vue 实现 jQuery UI 功能 在 Vue 项目中实现类似 jQuery UI 的功能,可以通过原生 Vue 组件或第三方库来实现。以下是几种常见 jQuery UI 功能的 Vue 替代方案…

vue实现粘贴

vue实现粘贴

Vue 实现粘贴功能的方法 在 Vue 中实现粘贴功能通常涉及监听粘贴事件并处理剪贴板数据。以下是几种常见的实现方式: 监听原生粘贴事件 通过 @paste 指令或原生 addEventListen…

vue observer实现

vue observer实现

Vue Observer 实现原理 Vue 的响应式系统核心是通过 Object.defineProperty(Vue 2)或 Proxy(Vue 3)实现的 Observer 模式。以下是关键实现细…

vue实现ios

vue实现ios

Vue 实现 iOS 风格应用 使用 Vue 实现 iOS 风格的应用,可以通过结合 UI 框架和自定义样式来达成目标。以下是具体方法和步骤: 选择 iOS 风格的 UI 框架 Vue 生态中有多…

vue实现树

vue实现树

Vue 实现树形结构的方法 使用递归组件实现树形结构 递归组件是Vue中实现树形结构的常见方式。通过组件调用自身,可以轻松构建多层嵌套的树形数据。 <template> <ul…