vue中tab选项卡的实现思路

今天分享下vue中tab选项卡的套路,废话不多说,直接上效果图

应用场景

•不同注册和登录方式切换

•操作选项切换 如保存和取消

•后台管理系统中各菜单选项切换等

•新闻标题分类切换 如关注 推荐 热点等分类

主要思路

•点击不同 tab 获取 tab 选项卡下标并为其动态绑定一个class(选中状态时的样式)

•点击时使 tab 对应的内容下标与 tab 选项卡下标保持一致

•使用 v-show / v-if 指令控制内容显示与隐藏

代码如下

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<meta http-equiv="X-UA-Compatible" content="ie=edge">

<title>tab</title>

<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>

<style>

html,

body {

height: 100%;

margin: 0;

padding: 0;

background-color: #58596b;

}

.active {

color: #fff;

background: #e74c3c;

}

#app {

width: 800px;

height: 400px;

margin: 100px auto;

background-color: #fff;

box-shadow: 0 1px 3px rgba(0, 0, 0, .1);

}

.menuList {

width: 800px;

height: 60px;

background-color: #33344a;

}

ul {

width: 100%;

display: flex;

list-style: none;

padding: 0;

margin: 0;

color: #717181;

font-size: 16px;

line-height: 60px;

}

ul li {

flex: 1;

text-align: center;

cursor: pointer;

}

.tabCon {

width: 700px;

margin: 0 auto;

padding: 40px 20px;

color: #999;

font-size: 14px;

background-color: #fff;

}

</style>

</head>

<body>

<div id="app">

<div class="menuList">

<ul>

<li v-for="(item,index) in list" :key="item.id" :class="{active:num==index}" @click="getNum(index)">

{{item}}

</li>

</ul>

</div>

<div class="tabCon">

<div v-for='(itemCon,index) in tabContents' v-show="index == num">

{{itemCon}}

</div>

</div>

</div>

<script>

var app = new Vue({

el: "#app",

data() {

return {

num: 0,

list: ["张三丰", "独孤求败", "周伯通"],

tabContents: [

"张三丰,名君宝,字符元,道号三丰。武林至尊,民族英雄 、内拳始祖、太极始祖、武学泰斗、龙行书法始祖张三丰集各派绝学于一身,威震武林,造诣已达炼虚合道至高极境 [1] ,元末明初真人,武当山道人,武当派始祖,正史记载宋理宗淳佑七年(1247年) 出生辽东,14岁考取文武状元,18岁担任博陵县令,(1280年)辞官出家修道,拜火龙真人为师,武林盟主张三丰时隐时现,至今行踪不定,清朝道光年间曾出现在峨眉山。",

"独孤求败,自号“剑魔”,纵横江湖三十馀载,杀尽仇寇,败尽英雄,天下更无抗手,无可奈何,惟隐居深谷,以雕为友。呜呼,生平求一敌手而不可得,诚寂寥难堪也。在小说中从未出场过,只曾在人物的口中提及。",

"周伯通不是金大师小说中的主角,也不是塑造的最丰满、最完善的形象,更不是侠客或英雄的代表,而且就武侠小说最基本的要素-武功、武学所达到的境界来说,周伯通也不是绝顶高手,但毫无疑问,周伯通是金大师所塑造的所有人物中最有意思的一位,至少是最有意思的人物之一。"],

}

},

methods: {

getNum(index) {

this.num = index;

}

}

})

</script>

</body>

</html>

总结

以上所述是小编给大家介绍的vue中tab选项卡的实现思路,希望对大家有所帮助,如果大家有任何疑问小编会及时回复大家的!

以上是 vue中tab选项卡的实现思路 的全部内容, 来源链接: utcz.com/z/342156.html

回到顶部