使用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实现的角色左右选择特效
May 21 Javascript
JavaScript中的数组操作介绍
Dec 30 Javascript
js中利用tagname和id获取元素的方法
Jan 03 Javascript
如何用angularjs制作一个完整的表格
Jan 21 Javascript
深入理解JS正则表达式---分组
Jul 18 Javascript
HTML5 JS压缩图片并获取图片BASE64编码上传
Nov 16 Javascript
jQuery插件zTree实现删除树子节点的方法示例
Mar 08 Javascript
jQuery自定义元素右键点击事件(实现案例)
Apr 28 jQuery
vue判断input输入内容全是空格的方法
Mar 02 Javascript
JS添加或删除HTML dom元素的方法实例分析
Mar 05 Javascript
vue+element实现表格新增、编辑、删除功能
May 28 Javascript
javascript使用substring实现的展开与收缩文字功能示例
Jun 17 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下读取文本文件的代码
2008/07/02 PHP
php 中文和编码判断代码
2010/05/16 PHP
Yii使用CLinkPager分页实例详解
2014/07/23 PHP
jQuery Mobile + PHP实现文件上传
2014/12/12 PHP
PHP大神的十大优良习惯
2016/09/14 PHP
php常用字符函数实例小结
2016/12/29 PHP
关于PHP定时发送服务的解决办法
2017/04/23 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
JS特权方法定义作用以及与公有方法的区别
2013/03/18 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
当jquery ajax遇上401请求的解决方法
2016/05/19 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
JavaScript插入排序算法原理与实现方法示例
2018/08/06 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
vue 点击按钮实现动态挂载子组件的方法
2018/09/07 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
vue2路由方式--嵌套路由实现方法分析
2020/03/06 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
python调用windows api锁定计算机示例
2014/04/17 Python
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
Python面向对象之继承代码详解
2018/01/29 Python
Python常见字典内建函数用法示例
2018/05/14 Python
pygame游戏之旅 按钮上添加文字的方法
2018/11/21 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
Python xlrd模块导入过程及常用操作
2020/06/10 Python
Python中使用Selenium环境安装的方法步骤
2021/02/22 Python
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
《一个中国孩子的呼声》教学反思
2014/02/12 职场文书
解除劳动合同协议书
2014/04/14 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
先进个人总结范文
2015/02/15 职场文书
七年级作文之秋游
2019/10/21 职场文书
Python实现制作销售数据可视化看板详解
2021/11/27 Python
vue 自定义组件添加原生事件
2022/04/21 Vue.js