使用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 相关文章推荐
通过Mootools 1.2来操纵HTML DOM元素
Sep 15 Javascript
IE和firefox浏览器的event事件兼容性汇总
Dec 06 Javascript
ajax异步刷新实现更新数据库
Dec 03 Javascript
javascript ajax 仿百度分页函数
Oct 29 Javascript
在JavaScript中用getMinutes()方法返回指定的分时刻
Jun 10 Javascript
基于JS实现简单的样式切换效果代码
Sep 04 Javascript
详谈js原型继承的一些问题
Sep 06 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
Oct 25 Javascript
JS点击动态添加标签、删除指定标签的代码
Apr 18 Javascript
浅析vue.js数组的变异方法
Jun 30 Javascript
Angular8 Http拦截器简单使用教程
Aug 20 Javascript
JavaScript十大取整方法实例教程
Dec 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
phpmail类发送邮件函数代码
2012/02/20 PHP
PHP删除目录及目录下所有文件的方法详解
2013/06/06 PHP
解析php通过cookies获取远程网页的指定代码
2013/06/25 PHP
PHP中的use关键字概述
2014/07/23 PHP
极酷的javascirpt,让你随意编辑任何网页
2007/02/25 Javascript
理解Javascript_07_理解instanceof实现原理
2010/10/15 Javascript
兼容IE和FF的js脚本代码小结(比较常用)
2010/12/06 Javascript
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
Javascript实现返回上一页面并刷新的小例子
2013/12/11 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
JavaScript中setUTCMilliseconds()方法的使用详解
2015/06/12 Javascript
jquery实现的3D旋转木马特效代码分享
2015/08/25 Javascript
原生JS实现首页进度加载动画
2016/09/14 Javascript
javascript 中的事件委托详解
2016/10/25 Javascript
webstorm中配置nodejs环境及npm的实例
2018/05/15 NodeJs
vue中axios的封装问题(简易版拦截,get,post)
2018/06/15 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
Python 爬虫学习笔记之单线程爬虫
2016/09/21 Python
python判断字符串是否是json格式方法分享
2017/11/07 Python
Python实现购物车购物小程序
2018/04/18 Python
实例讲解python中的协程
2018/10/08 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
Python shelve模块实现解析
2019/08/28 Python
python双向链表原理与实现方法详解
2019/12/03 Python
使用TFRecord存取多个数据案例
2020/02/17 Python
python os模块在系统管理中的应用
2020/06/22 Python
光荣入党自我鉴定
2014/01/22 职场文书
户外用品商店创业计划书
2014/01/29 职场文书
业务总经理岗位职责
2014/02/03 职场文书
挂职学习心得体会
2014/09/09 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
公司借款担保书
2015/09/22 职场文书
2016七夕情人节广告语
2016/01/28 职场文书
解决redis sentinel 频繁主备切换的问题
2021/04/12 Redis
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js