讲师中心 微信公众号
AI工具推荐 视频效率加速

Vue.js 过渡与动画系统:Transition 组件的应用

星磊酱_9037

星磊酱_9037

发布时间:2026-07-21 16:06:22

|

838人浏览过

|

来源于php中文网

原创

Vue的Transition组件通过控制6个CSS类名的注入时机实现动画,本身不渲染DOM也不执行动画,需开发者编写transition或animation规则;常见问题包括display不可过渡、缺少active类声明、父容器塌陷等,多元素过渡须用TransitionGroup,还可结合JS钩子实现精细控制。

vue.js 过渡与动画系统:transition 组件的应用

Vue 的 Transition 组件不是加个标签就出动画的“开关”,而是通过精准控制类名注入时机,把动画节奏交还给开发者。它本身不渲染 DOM,也不执行动画,只负责在元素进入或离开时,按固定顺序添加和移除 CSS 类——真正动起来的,是你写的 transition 或 animation 规则。

Transition 必须掌握的六类 CSS 名

Vue 在过渡过程中会自动切换 6 个类,分进入(enter)和离开(leave)两组,每组各三个阶段:

  • v-enter-from:元素还没出现,初始态(如 opacity: 0、transform: scale(0.9))
  • v-enter-active:整个进入过程生效,必须在这里写 transition 或 animation 声明(如 transition: all 0.3s ease-out)
  • v-enter-to:元素完全呈现,终态(如 opacity: 1、transform: scale(1))
  • v-leave-from:元素还在原位,离开起点(如 opacity: 1、left: 0)
  • v-leave-active:整个离开过程生效,同样必须声明动画规则,否则不会动
  • v-leave-to:元素彻底移出或隐藏,终点(如 opacity: 0、left: 100vw)

注意:v-enter 和 v-leave 已在 Vue 2.1.8+ 废弃,统一用 -from / -to 后缀;若写了 <transition name="slide"></transition>,类名前缀就变成 slide-enter-from,不是 v-slide-enter-from。

常见动不起来的原因和解法

样式写了,但没动画?多半卡在这几个关键点:

JS X Monitor
JS X Monitor

X.com (Twitter) 账号监控自动化:定时抓取指定账号最新推文,发现新内容即时推送通知。

下载

立即学习“前端免费学习笔记(深入)”;

  • 目标元素用了 v-if 切换,但同时设置了 display: none —— display 不可过渡。应改用 v-show,或配合 visibility: hidden + opacity
  • v-enter-active 或 v-leave-active 缺少 transition 或 animation 声明,等于没通电
  • 父容器高度塌陷:v-if 移除子元素后,父级高度归零,导致“闪退”。可设 min-height,或对 height 做过渡
  • 两个互斥元素共用一个 <transition></transition>,Vue 默认并行过渡。加 mode="out-in",确保旧元素走完再进新元素

Transition 和 TransitionGroup 的分工

<transition></transition> 只能包裹**一个直接子元素**。如果里面放两个 <div>,Vue 直接报错。 <ul> <li>单个元素显隐(比如弹窗、提示条)→ 用 <code><transition></transition>

  • 多个元素批量进出(比如列表项增删、路由切换时多个组件)→ 必须用 <transition-group></transition-group>
  • <transition-group></transition-group> 会渲染一个真实 DOM 标签(默认是 ),可指定 tag 属性替换成
      等语义化容器
  • 搭配 JS 钩子做更精细控制

    除了 CSS 类,Transition 还支持 JavaScript 钩子,在关键节点执行逻辑:

    • @before-enter:元素插入前,DOM 尚未挂载,适合初始化状态
    • @enter:元素已插入,可操作 DOM(如触发 scrollIntoView)
    • @after-enter:动画结束,适合清理或后续动作
    • @leave:离开开始,可读取当前尺寸用于 height 过渡
    • @after-leave:元素彻底移除,适合重置数据或释放资源

    钩子函数接收元素实例,配合 getBoundingClientRect() 或 offsetHeight,能实现高度自适应过渡等复杂效果。

    热门AI工具

    更多
    豆包大模型

    豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

    VibeKnow
    VibeKnow Hot

    一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

    讯飞绘文

    讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

    讯飞智作

    讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

    UP简历
    UP简历 Hot

    一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

    Seko
    Seko Hot

    一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

    火山引擎

    火山引擎是一款面向企业的云计算与AI服务平台。

    WorkBuddy

    一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

    DeepSeek

    DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

    相关专题

    更多
    python是前端还是后端
    python是前端还是后端

    Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

    2763

    2023.08.11

    前端如何实现即时通讯
    前端如何实现即时通讯

    实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

    6003

    2023.10.09

    前端和后端的区别
    前端和后端的区别

    前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

    6930

    2024.03.19

    php和前端的关联介绍
    php和前端的关联介绍

    php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

    6698

    2024.03.22

    前端外包工作内容有哪些
    前端外包工作内容有哪些

    前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

    963

    2024.05.22

    vue2.0和3.0区别
    vue2.0和3.0区别

    vue2.0和3.0区别:vue2的响应式原理是利⽤“Object.defineProperty()”对数据进⾏劫持结合发布订阅模式的⽅式来实现,vue3中使⽤了es6的proxy API对数据代理,实现对数据的监控。本专题为大家提供vue2.0和3.0区别的相关的文章、下载、课程内容,供大家免费下载体验。

    1734

    2023.07.17

    vue3的生命周期有哪些
    vue3的生命周期有哪些

    vue3的生命周期:1、beforecreate;2、created;3、beforemount;4、mounted;5、beforeupdate;6、updated;7、beforedestroy;8、destroyed;9、activated;10、deactivated等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

    12382

    2024.02.23

    Vue3组合式API与组件开发实战
    Vue3组合式API与组件开发实战

    本专题讲解 Vue 3 组合式 API 的核心概念与应用技巧,深入分析响应式系统、生命周期管理、组件设计与复用策略。通过完整项目案例,指导前端开发者实现高性能、结构清晰的 Vue 应用,提升开发效率与代码可维护性。

    336

    2026.02.10

    Vite 项目如何打包和部署
    Vite 项目如何打包和部署

    Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

    60

    2026.10.28

    热门下载

    更多
    网站特效
    /
    网站源码
    /
    网站素材
    /
    前端模板

    精品课程

    更多
    相关推荐
    /
    热门推荐
    /
    最新课程
    Vue 教程
    Vue 教程

    共42课时 | 17.3万人学习

    国外Web开发全栈课程全集
    国外Web开发全栈课程全集

    共12课时 | 1.4万人学习

    Vue.js 微实战--十天技能课堂
    Vue.js 微实战--十天技能课堂

    共18课时 | 1.7万人学习

    关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
    php中文网:公益在线php培训,帮助PHP学习者快速成长!
    关注服务号
    PHP中文网订阅号
    每天精选资源文章推送

    Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn