前言
元素的显示隐藏都可以增加动画效果v-if
、v-show
、v-for
、路由切换等操作。
常见的增加动画的方式有 animation
、 transition
、 js编写动画
css3动画
我们先要具体掌握一下每个样式的触发阶段
1 | <div @click="show()">显示/隐藏</div> |
1 | .content{ |
我们可以使用
name属性来更改默认v-前缀
配合animate.css
使用
安装animate.css
1 | npm install animate.css |
1 | <link rel="stylesheet" href="node_modules/animate.css/animate.css"> |
也可以采用直接指定样式的方式
1 | <transition enter-active-class="bounceIn" leave-active-class="bounceOut"> |
示例
1 | <head> |
js编写动画
常用的钩子
- before-enter 触发enter之前
- before-leave 触发leave之前
- enter 进入动画过程
- leave 离开动画过程
- after-enter 进入动画结束
- after-leave 离开动画结束
示例
添加购物车的例子
1 | <div id="app"> |
我们可以借助 v-if
来实现动画效果
1 | <head> |
4.3 多元素动画
如果动画遇到v-for
就需要使用transition-group
,而且每个元素必须增加key
属性
1 | <div class="nav-list" ref="box"> |
1 | .nav-list .v-enter{ /*进入前的状态*/ |
六.面试题环节
- computed和watch有什么区别?
- Vue的生命周期,每个生命周期具体适合哪些场景
- Vue中ref是什么?
- Vue动画的生命周期?
- Vue如何编写自定义指令?