资讯专栏INFORMATION COLUMN

Vue一个案例引发「动画」的使用总结

liuchengxu / 1809人阅读

摘要:既然我们知道了方法,我们就来给它加一个简单的动画。动画中还给我们提供了一些钩子函数,我们可以使用钩子函数构建动画。它会告知我们的动画完成,我们绑定了为,告诉组件跳过的检测,使用。

项目开发中动画有着很重要的作用,而且也是用到的地方非常多,例如:鼠标的进入离开,弹窗效果,组件的显示隐藏,列表的切换等等,可以说我们网页上的动画无处不在,也有人说了,这些东西也可以不使用动画。

对,你说的没错可以不使用,但是,首先你要说服你的产品经理咱能不能简单点,不搞这么多虚的来点实际的,说完之后我估计你们俩得立马干起来,其次,在你的网页上不使用动画不够逼格啊,而且咱们的网页也不够生动,没有活力,由此可见动画的不可或缺性。

上面只是开个玩笑,下面咱们进入主题,看看 Vue 中如何更好更简单的添加动画。

首先,Vue 在插入,修改或者移除 DOM 时,提供了多种不同的添加动画的方法,在 Vue 中我们使用 组件时,Vue 会给我们提供一些内置的 CSS 类与 JS 钩子函数。

先来看看我们要实现一个什么样子的案例效果

图中的例子是一个非常常见的图片切换效果,不过在这个例子中我们只是单纯的实现图片的切换,看起来非常的生硬,没有任何的过渡效果,下面我们来给图片加一点动画的效果,让它看起来非常的有逼格。

CSS 过渡

包裹的组件,在组件的不同阶段会产生不同的 class 类名进行切换

v-enter/v-leave:动画的第一帧

v-enter-acive/v-leave-active:动画运行的阶段,一些过渡属性会放置在这里,如:时间,延迟等

v-enter-to/v-leave-to:动画结束,最后一帧

官网上的一张图片非常友好的展示了这个切换的过程。

v- 是 Vue 中默认的类名前缀,我们在使用的过程中如果一直使用默认的命名方式的话,必然会导致一些冲突,所以 Vue 给我们提供了一个自定义命名的方案,我们只需要给 添加一个 name 属性即可。

既然我们知道了方法,我们就来给它加一个简单的动画。