使用vue.js写一个tab选项卡效果


Posted in Javascript onMarch 25, 2017

通常我们写tab选项卡的时候,一般都是用jq等去操作dom,给同级元素移除active类,然后,给被点击元素添加active类,但是在vue.js中,我们能不去操作dom我们就尽量不操作dom,那么该如何实现呢?

如果使用过vue-router,那么你会发现,vue-router在使用的时候其实就相当于一个tab选项卡,在点击之后,被点击的router-link元素会默认被添加上一个router-link-active的类,我们只需要设置这个类的样式即可.(当然,router-link-active)是vue-router默认的类名,你可以自己配置更改名称.这样我们可以直接使用vue的路由功能当tab选项卡使用了.那么如果不想用路由功能呢?

那么请看下面的方法:

html部分

<div id="app">
 <ul>  
  <li @click="toggle($index ,tab.view)" v-for="tab in tabs" :class="{active:active==$index}">
    {{tab.type}}  
   </li> 
 </ul> 
 <component :is="currentView"></component>
</div>

js部分

Vue.component('child1', { 
 template: "<p>this is child1</p>"
})
Vue.component('child2', { 
 template: "<p>this is child2</p>"
})
new Vue({ 
 el: "#app", 
 data: { 
 active: 0, 
 currentView: 'child1', 
 tabs: [ 
 {  
  type: 'tab1', 
  view: 'child1' 
 },  
 {  
  type: 'tab2', 
  view: 'child2' 
 } 
 ] 
}, 
 methods: { 
 toggle(i, v){ 
 this.active = i 
 this.currentView = v 
 } 
 }
})

然后我们只需要设置一个.active的样式就可以了,比如设置一个最简单的

css

.active{
 color:red
}

简易的vue.js tab 选项卡

使用vue.js写一个tab选项卡效果

原理很简单,我们给tab选项绑定了toggle方法,点击时让active等于其index,从而给其添加了一个active类,而显示的内容也是同样的原理.比起传统操作dom方法,这个整体看上去更简洁,不过麻烦在每个tab选项卡都是一个组件.

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery中邮箱地址 URL网站地址正则验证实例代码
Sep 15 Javascript
JavaScript中的this关键字使用详解
Aug 14 Javascript
谈谈JavaScript异步函数发展历程
Sep 29 Javascript
AngularJS实现分页显示数据库信息
Jul 01 Javascript
基于jQuery实现滚动切换效果
Dec 02 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
Mar 09 Javascript
基于angular实现三级联动的生日插件
May 12 Javascript
seajs下require书写约定实例分析
May 16 Javascript
js删除对象/数组中null、undefined、空对象及空数组方法示例
Nov 14 Javascript
动态内存分配导致影响Javascript性能的问题
Dec 18 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
Feb 14 Javascript
js实现简单的贪吃蛇游戏
Apr 23 Javascript
JavaScript 实现 Tab 点击切换实例代码
Mar 25 #Javascript
JS操作xml对象转换为Json对象示例
Mar 25 #Javascript
javascript实现的图片预览功能
Mar 25 #Javascript
JS控件bootstrap suggest plugin使用方法详解
Mar 25 #Javascript
bootstrap table动态加载数据示例代码
Mar 25 #Javascript
JS控件bootstrap datepicker使用方法详解
Mar 25 #Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
Mar 25 #Javascript
You might like
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-3 代码组织和重用2
2011/07/03 PHP
Yii框架的redis命令使用方法简单示例
2019/10/15 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
JavaScript中按位“异或”运算符使用介绍
2014/03/14 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
基于nodejs+express4.X实现文件下载的实例代码
2017/07/13 NodeJs
基于js中document.cookie全面解析
2017/09/14 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
[05:03]2018DOTA2亚洲邀请赛主赛事首日回顾
2018/04/04 DOTA
Python采用Django制作简易的知乎日报API
2016/08/03 Python
python 垃圾收集机制的实例详解
2017/08/20 Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
2018/01/07 Python
基于python进行桶排序与基数排序的总结
2018/05/29 Python
python 将列表中的字符串连接成一个长路径的方法
2018/10/23 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
2019/04/27 Python
用Q-learning算法实现自动走迷宫机器人的方法示例
2019/06/03 Python
python 公共方法汇总解析
2019/09/16 Python
python配置文件写入过程详解
2019/10/19 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
2020/03/30 Python
Pygame的程序开始示例代码
2020/05/07 Python
使用OpenCV实现道路车辆计数的使用方法
2020/07/15 Python
css3与html5实现响应式导航菜单(导航栏)效果分享
2014/02/12 HTML / CSS
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
DHC美国官网:日本通信销售第一的化妆品品牌
2017/11/12 全球购物
StringBuilder和String的区别
2015/05/18 面试题
公关关系专员的自我评价分享
2013/11/20 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
数学教学随笔感言
2014/02/17 职场文书
元旦晚会感言
2014/03/12 职场文书
食品委托检验协议书范本
2014/09/12 职场文书
2014年语文教研组工作总结
2014/12/06 职场文书
工作经验交流材料
2014/12/30 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
详解Spring Boot使用系统参数表提升系统的灵活性
2021/06/30 Java/Android
MySQL 分区表中分区键为什么必须是主键的一部分
2022/03/17 MySQL