vue中tab选项卡的实现思路


Posted in Javascript onNovember 25, 2018

今天分享下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选项卡的实现思路,希望对大家有所帮助,如果大家有任何疑问小编会及时回复大家的!

Javascript 相关文章推荐
js或css文件后面跟参数的原因说明
Jan 09 Javascript
用Juery网页选项卡实现代码
Jun 13 Javascript
不同Jquery版本引发的问题解决
Oct 14 Javascript
js和html5实现手机端刮刮卡抽奖效果完美兼容android/IOS
Nov 18 Javascript
jQuery中prevAll()方法用法实例
Jan 08 Javascript
JavaScript中利用Array和Object实现Map的方法
Jul 27 Javascript
基于JavaScript实现购物网站商品放大镜效果
Sep 06 Javascript
深入理解bootstrap框架之入门准备
Oct 09 Javascript
js基于FileSaver.js 浏览器导出Excel文件的示例
Aug 15 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
Aug 28 Javascript
纯js代码生成可搜索选择下拉列表的实例
Jan 11 Javascript
Vue+Node服务器查询Mongo数据库及页面数据传递操作实例分析
Dec 20 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
Nov 25 #Javascript
vscode 开发Vue项目的方法步骤
Nov 25 #Javascript
浅谈Vue.js 中的 v-on 事件指令的使用
Nov 25 #Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 #Javascript
vue组件实践之可搜索下拉框功能
Nov 25 #Javascript
详解离线安装npm包的几种方法
Nov 25 #Javascript
vue将单页面改造成多页面应用的方法
Nov 25 #Javascript
You might like
十天学会php之第三天
2006/10/09 PHP
php设计模式  Command(命令模式)
2011/06/17 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
php生成动态验证码gif图片
2015/10/19 PHP
实例讲解通过​PHP创建数据库
2019/01/20 PHP
php session_decode函数用法讲解
2019/05/26 PHP
javascript 异常处理使用总结
2009/06/21 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
ES6新特性三: Generator(生成器)函数详解
2017/04/21 Javascript
纯JS实现可用于页码更换的飞页特效示例
2018/05/21 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
Javascript实现打鼓效果
2021/01/29 Javascript
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
[46:20]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Python学习之asyncore模块用法实例教程
2014/09/29 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
Python下线程之间的共享和释放示例
2015/05/04 Python
Python中pillow知识点学习
2018/04/30 Python
TensorFlow保存TensorBoard图像操作
2020/06/23 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
《金钱的魔力》教学反思
2014/02/24 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
航海技术专业毕业生推荐信
2014/07/09 职场文书
机关作风建设心得体会
2014/10/22 职场文书
会计出纳岗位职责
2015/03/31 职场文书
React更新渲染原理深入分析
2022/12/24 Javascript