欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue组件切换的两种方式

程序员文章站 2022-03-29 19:32:21
...

1.v-if与它的v-else

v-if 指令用于条件性地渲染一块内容。这块内容只会在指令的表达式返回true 值的时候被渲染。如果使用了v-else,则会在v-if为false时执行v-else的语句
但只适合两个组件的切换

<body>
    <div id="app">
        <input type="button" value="v-if" @click="flag=true">
        <input type="button" value="v-else" @click="flag=false">
        <!-- 5,放置两个组件 -->
        <vif v-if="flag"></vif>
        <velse v-else="flag"></velse>
    </div>


    <!-- 3.设置template的内容 -->
    <template id="isVIf">
        <div>
            <h1>这是v-if</h1>
        </div>
    </template>
    <template id="isVElse">
        <div>
            <h1>这是v-else</h1>
        </div>
    </template>


    <script>
        // 2.创建两个组件
        Vue.component("vif", {
            template: "#isVIf"

        })
        Vue.component("velse", {
            template: "#isVElse"

        })

        //1.创建Vue实例,得到 ViewModel
        var app = new Vue({
            el: '#app',
            data: {
                // 4.用于判断执行条件
                flag: true
            },
            methods: {}
        })
    </script>
</body>

Vue组件切换的两种方式

2.使用Vue提供的<component>标签

通过<component>的 v-bind:is 属性,可以显示指定名称的组件
适合多个组件之间的切换

<body>
    <div id="app">
        <!-- 5.为按钮绑定事件 -->
        <input type="button" value="组件1" @click="comName='com1'">
        <input type="button" value="组件2" @click="comName='com2'">
        <input type="button" value="组件3" @click="comName='com3'">
        <input type="button" value="组件4" @click="comName='com4'">

        <!-- 3.创建Vue提供的<component>标签, :is属性会显示指定的组件 -->
        <component :is="comName"></component>
    </div>

    <script>
        // 2.创建组件
        Vue.component("com1", {
            template: "<h1>我是组件1</h1>"
        })
        Vue.component("com2", {
            template: "<h1>我是组件2</h1>"
        })
        Vue.component("com3", {
            template: "<h1>我是组件3</h1>"
        })
        Vue.component("com4", {
            template: "<h1>我是组件4</h1>"
        })

        //1.创建Vue实例,得到 ViewModel
        var vm = new Vue({
            el: '#app',
            data: {
                // 4.创建变量comName,用于控制<component>标签:is属性的值
                comName: 'com1'
            },
            methods: {}
        })
    </script>
</body>

Vue组件切换的两种方式

相关标签: vue.js vue.js