使用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 相关文章推荐
js中的屏蔽的使用示例
Jul 30 Javascript
js+csss实现的一个带复选框的下拉框
Sep 29 Javascript
angularjs中的e2e测试实例
Dec 06 Javascript
JavaScript实现twitter puddles算法实例
Dec 06 Javascript
JavaScript中window.showModalDialog()用法详解
Dec 18 Javascript
jQuery中:header选择器用法实例
Dec 29 Javascript
javascript中mouseover、mouseout使用详解
Jul 19 Javascript
以BootStrap Tab为例写一个前端组件
Jul 25 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
聊聊Vue 中 title 的动态修改问题
Jun 11 Javascript
uniapp实现可滑动选项卡
Oct 21 Javascript
vue中div禁止点击事件的实现
Apr 02 Vue.js
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下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
浅析php工厂模式
2014/11/25 PHP
yii用户注册表单验证实例
2015/12/26 PHP
Yii编程开发常见调用技巧集锦
2016/07/15 PHP
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
javascript的回调函数应用示例
2014/02/20 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
JavaScript实现信用卡校验方法
2015/04/07 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
学习JavaScript设计模式(接口)
2015/11/26 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
JavaScript实现移动端滑动选择日期功能
2016/06/21 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
如何利用JavaScript编写更好的条件语句详解
2020/08/10 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
Python判断操作系统类型代码分享
2014/11/22 Python
Python日志模块logging简介
2015/04/13 Python
python实现学生管理系统
2018/01/11 Python
python中pip的安装与使用教程
2018/08/10 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
python3 深浅copy对比详解
2019/08/12 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
2020/06/03 Python
Python-opencv实现红绿两色识别操作
2020/06/04 Python
python GUI模拟实现计算器
2020/06/22 Python
教育局长自荐信范文
2013/12/22 职场文书
田径运动会开幕式及主持词
2014/03/28 职场文书
模具专业求职信
2014/06/26 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
2014年单位法制宣传日活动总结
2014/11/01 职场文书
食堂卫生管理制度
2015/08/04 职场文书