使用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 相关文章推荐
JavaScript Accessor实现说明
Dec 06 Javascript
Js中setTimeout()和setInterval() 何时被调用执行的用法
Apr 12 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
Aug 02 Javascript
jQuery实现仿Google首页拖动效果的方法
May 04 Javascript
javascript使用输出语句实现网页特效代码
Aug 06 Javascript
Vue组件通信实践记录(推荐)
Aug 15 Javascript
js实现canvas图片与img图片的相互转换的示例
Aug 31 Javascript
layui表格checkbox选择全选样式及功能的实例
Mar 07 Javascript
微信小程序适配iphoneX的实现方法
Sep 18 Javascript
Vue实现本地购物车功能
Dec 05 Javascript
jQuery实现移动端图片上传预览组件的方法分析
May 01 jQuery
JavaScript实现简单验证码
Aug 24 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
玩转虚拟域名◎+ .
2006/10/09 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
2014/06/27 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
[原创]php获取数组中键值最大数组项的索引值
2015/03/17 PHP
php防止sql注入简单分析
2015/03/18 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
javascript forEach通用循环遍历方法
2010/10/11 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
JS实现的网页倒计时数字时钟效果
2015/03/02 Javascript
JS实现黑色大气的二级导航菜单效果
2015/09/18 Javascript
JS设置cookie、读取cookie
2016/02/24 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
浅谈js中同名函数和同名变量的执行问题
2017/02/12 Javascript
js实现日期显示的一些操作(实例讲解)
2017/07/27 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
跟老齐学Python之正规地说一句话
2014/09/28 Python
用Python实现协同过滤的教程
2015/04/08 Python
python实现旋转和水平翻转的方法
2018/10/25 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
2019/08/12 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
HTML5计时器小例子
2013/10/15 HTML / CSS
慕尼黑山地运动、户外服装和体育用品专家:Sporthaus Schuster
2019/08/27 全球购物
天网工程实施方案
2014/03/26 职场文书
母亲节演讲稿
2014/05/27 职场文书
感恩老师演讲稿400字
2014/08/28 职场文书
简单的个人租房协议书范本
2014/11/26 职场文书
财务部岗位职责
2015/02/03 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫
python 使用tkinter与messagebox写界面和弹窗
2022/03/20 Python