美文网首页
【Vue13】多个元素或组件的过渡动画

【Vue13】多个元素或组件的过渡动画

作者: 八宝君 | 来源:发表于2018-05-25 03:09 被阅读0次

    多个元素的过渡效果

    对于多个元素进行切换时,我们可用v-if/vue-else来做,如下图框2中。要想给他们添加过渡效果,就得增加过渡的动画,但是如下图这样写,过渡动画是不能生效的。

    因为当有相同标签名的元素切换时,需要通过key值来设置唯一性,好让Vue来区分它们,否则Vue为了效率只会替换相同标签内部的内容,所以要记得用key值区分一下。
    这样加上key

    就会出现明显的动画切换的效果,如下图:


    这样这样

    对于key值也有几种合并方法:

    1.一些场景key可以设置不同的状态来代替v-ifv-else

    我是原版1
    重写后:
    我是重写1

    2.使用多个v-if的多个元素的过渡,可以重写为绑定了动态属性的单个元素过渡

    我是原版2
    重写后:
    我是重写2-1
    我是重写2-2

    上面是个关于key值的小插曲,在Vue<transition> 的默认行为 - 进入和离开同时发生,但是有的时候想要别的效果,SOVue中在transition中还提供了mode参数来设置多个属性切换的效果(过渡模式)。
    mode有两个值:
    1.in-out:新元素先进行过渡,完成之后当前元素过渡离开(比如先进入再隐藏)。

    2.out-in:当前元素先进行过渡,完成之后新元素过渡进入(比如先隐藏再显示))。

    多个组件的过渡效果

    多个组件的过渡不需要用到key的特性,可用到之前学的知识点——动态组件。

    本来我们可以是这样写:

    之前的做法

    通过动态组件是这样写的:

    模板处这样写
    type和模板通过is绑定 image.png
    判断一下type的值,如果type===child,则修改成child-one,否则改成child,这样就可以通过is关联的数据,来控制type的值在childchild-one中切换。

    相关文章

      网友评论

          本文标题:【Vue13】多个元素或组件的过渡动画

          本文链接:https://www.haomeiwen.com/subject/gaaejftx.html