Vue中多个元素或组件的过渡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Vue中多个元素或组件的过渡</title>
    <script src="./vue.js"></script>
    <style>
        .v-enter,.v-leave-to{
            opacity: 0;
        }
        .v-enter-active,.v-leave-active{
            transition:opacity 1s;
        }
    </style>
</head>
<body>
<div id="root">
    <transition mode="out-in">
        <component :is="type"></component> <!--动态组件的使用-->
        <!--<child v-if="show"></child>-->
        <!--<child-one v-else></child-one>-->
        <!--<div v-if="show" key="hello">hello world</div> &lt;!&ndash;key的创建,避免DOM标签的复用&ndash;&gt;-->
        <!--<div v-else key="bye">Bye World</div>-->
    </transition>
    <button @click="handleClick">toggle</button>
</div>
<script>
    Vue.component('child',{
        template:'<div>child</div>'
    });

    Vue.component('child-one',{
        template:'<div>child-one</div>'
    });


    var vm = new Vue({
        el: '#root',
        data: {
            // show: true
            type:'child'
        },
        methods: {
            handleClick: function () {
                // this.show = !this.show
                this.type = this.type === 'child' ? 'child-one':'child'
            },
        }
    })
</script>
</body>
</html>
<!--
transition上提供了mode配置参数
         mode='in-out'  先显示再隐藏
         mode='out-in'  先隐藏再显示
-->

 

posted @ 2018-11-26 15:47  alexbiu  阅读(584)  评论(0编辑  收藏  举报