使用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判断录入的日期是否合法
Jan 08 Javascript
JavaScript Archive Network 集合
May 12 Javascript
基于jquery的一个图片hover的插件
Apr 24 Javascript
js通过八个点 拖动改变div大小的实现方法
Mar 05 Javascript
JS计算网页停留时间代码
Apr 28 Javascript
浅析Javascript中“==”与“===”的区别
Dec 23 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 Javascript
微信小程序开发之animation循环动画实现的让云朵飘效果
Jul 14 Javascript
Angular实现响应式表单
Aug 04 Javascript
详解webpack打包第三方类库的正确姿势
Oct 20 Javascript
javascript 设计模式之享元模式原理与应用详解
Apr 08 Javascript
vue使用video插件vue-video-player的示例
Oct 03 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和ACCESS写聊天室(十)
2006/10/09 PHP
PHP与javascript的两种交互方式
2006/10/09 PHP
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
PHP程序漏洞产生的原因分析与防范方法说明
2014/03/06 PHP
PHP 读取和编写 XML
2014/11/19 PHP
关于php支持的协议与封装协议总结(推荐)
2017/11/17 PHP
激活 ActiveX 控件
2006/10/09 Javascript
node.js中的querystring.parse方法使用说明
2014/12/10 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
浅析Vue 生命周期
2018/06/21 Javascript
15分钟深入了解JS继承分类、原理与用法
2019/01/19 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
对于Python中线程问题的简单讲解
2015/04/03 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
2018/01/09 Python
使用python进行文本预处理和提取特征的实例
2018/06/05 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
python requests使用socks5的例子
2019/07/25 Python
如何基于Python获取图片的物理尺寸
2019/11/25 Python
pytorch 彩色图像转灰度图像实例
2020/01/13 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
旅游管理专业学生求职信
2013/09/28 职场文书
消防安全汇报材料
2014/02/08 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
群众路线教育查摆剖析材料
2014/10/10 职场文书
镇党政领导班子民主生活会思想汇报
2014/10/11 职场文书
依法行政工作汇报
2014/10/28 职场文书
2014年底工作总结
2014/12/15 职场文书
2015年中秋节演讲稿
2015/03/20 职场文书
Django基础CBV装饰器和中间件
2022/03/22 Python
详解SQL报错盲注
2022/07/23 SQL Server