两种vue.js选项卡方法


方法一

<div id="app" class="box">
            <ul class="tabs clearfix">
                <li v-for="(tab,index) in tabsName">
                    <a href="#" class="tab-link" @click="tabsSwitch(index)" v-bind:class="{active:tab.isActive}">{{tab.name}}</a>
                </li>
            </ul>
 
            <div class="cards">
                <div class="tab-card" style="display: block;">这里是HTML教程</div>
                <div class="tab-card">欢迎来到CSS模块</div>
                <div class="tab-card">嗨,这里是Vue</div>
            </div>
var app = new Vue({
            el: "#app",
            data: {
                tabsName: [{
                    name: "HTML",
                    isActive: true
                }, {
                    name: "CSS",
                    isActive: false
                }, {
                    name: "Vue",
                    isActive: false
                }],
                active: false
            },
            methods: {
                tabsSwitch: function(tabIndex) {
 
                    var tabCardCollection = document.querySelectorAll(".tab-card"),
                        len = tabCardCollection.length;
 
                    for(var i = 0; i < len; i++) {
                        tabCardCollection[i].style.display = "none";
                        this.tabsName[i].isActive = false;
                    }
                    this.tabsName[tabIndex].isActive = true;
                    tabCardCollection[tabIndex].style.display = "block";
                }
            }
        })

 

方法二

<div id="app">
        <ul>
            <li 
            v-for="(item,index) in tabs" 
            :class="{active:index == num}"
             @click="tab(index)">{{item}}</li>
        </ul>
        <div class="tabCon">
            <div 
            v-for='(itemCon,index) in tabContents' 
            v-show=" index == num">{{itemCon}}</div>
        </div>
    </div>
var vm = new Vue({
    el: '#app',
    data: {
        tabs: ["标题一", "标题二","标题三"],
        tabContents: ["内容一", "内容二","内容三"],
        num: 1
    },
    methods: {
        tab(index) {
            this.num = index;
        }
    }
});

 

以上方法均为他人创作,如有冒犯,敬请原谅,可联系本人删除冒犯之处。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM