使用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 常用方法经典总结
Jan 28 Javascript
JavaScript中链式调用之研习
Apr 07 Javascript
javascript框架设计读书笔记之字符串的扩展和修复
Dec 02 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
Dec 08 Javascript
jquery右下角自动弹出可关闭的广告层
May 08 Javascript
jquery事件的ready()方法使用详解
Nov 11 Javascript
AngularJS使用ng-inlude指令加载页面失败的原因与解决方法
Jan 19 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
Apr 26 Javascript
Vue 多层组件嵌套二种实现方式(测试实例)
Sep 08 Javascript
vue-router相关基础知识及工作原理
Mar 16 Javascript
mpvue 页面预加载新增preLoad生命周期的两种方式
Oct 17 Javascript
vue中jsonp插件的使用方法示例
Sep 10 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学习之PHP运算符
2006/10/09 PHP
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
ThinkPHP缓存方法S()概述
2014/06/13 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
Zend Framework教程之连接数据库并执行增删查的方法(附demo源码下载)
2016/03/21 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
onpropertypchange
2006/07/01 Javascript
JS函数验证总结(方便js客户端输入验证)
2010/10/29 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
Javascript检查图片大小不要让大图片撑破页面
2014/11/04 Javascript
JS获取表格内指定单元格html内容的方法
2015/03/31 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
基于chosen插件实现人员选择树搜索自动筛选功能
2016/09/24 Javascript
使用canvas实现一个vue弹幕组件功能
2018/11/30 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
[01:09:19]DOTA2-DPC中国联赛 正赛 VG vs Aster BO3 第二场 2月28日
2021/03/11 DOTA
python实现发送和获取手机短信验证码
2016/01/15 Python
深入浅出学习python装饰器
2017/09/29 Python
Python3.6日志Logging模块简单用法示例
2018/06/14 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
基于Python+Appium实现京东双十一自动领金币功能
2019/10/31 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
keras:model.compile损失函数的用法
2020/07/01 Python
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
最受欢迎的自我评价
2013/12/22 职场文书
幼儿教师求职信
2014/05/24 职场文书
委托书怎么写
2014/07/31 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
幼儿园感恩节活动方案
2014/10/06 职场文书
个人职业生涯规划之自我评估篇
2019/09/03 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android