使用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 相关文章推荐
asp 取文本框名称代码
Dec 02 Javascript
js弹出的对话窗口永远保持居中显示
Dec 15 Javascript
引用 js在IE与FF之间的区别详细解析
Nov 20 Javascript
禁止IE用右键的JS代码
Dec 30 Javascript
javascript实现文本域写入字符时限定字数
Feb 12 Javascript
使用ngView配合AngularJS应用实现动画效果的方法
Jun 19 Javascript
jquery自定义插件结合baiduTemplate.js实现异步刷新(附源码)
Dec 22 Javascript
jquery的 filter()方法使用教程
Mar 22 jQuery
jQuery实现表单动态加减、ajax表单提交功能
Jun 08 jQuery
vue实现点击当前标签高亮效果【推荐】
Jun 22 Javascript
js tab栏切换代码实例解析
Sep 03 Javascript
javascript 易错知识点实例小结
Apr 25 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
VFP与其他应用程序的集成
2006/10/09 PHP
PHP中Session的概念
2006/10/09 PHP
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php并发对MYSQL造成压力的解决方法
2013/02/21 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
2014/10/23 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
浅析Laravel5中队列的配置及使用
2016/08/04 PHP
php常用正则函数实例小结
2016/12/29 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
如何在PHP中使用AES加密算法加密数据
2020/06/24 PHP
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
jquery实现在页面加载的时自动为日期插件添加当前日期
2014/08/20 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
浅谈es6中export和export default的作用及区别
2018/02/07 Javascript
Vue导出页面为PDF格式的实现思路
2018/07/31 Javascript
webpack优化的深入理解
2018/12/10 Javascript
jquery实现图片放大镜效果
2020/12/23 jQuery
[02:09]EHOME夺得首届辉夜杯冠军—现场颁奖仪式
2015/12/28 DOTA
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
Python抽象类的新写法
2015/06/18 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
可靠的数据流传输TCP
2016/03/15 面试题
内部类的定义、种类以及优点
2013/10/16 面试题
党政领导班子群众路线对照检查材料
2014/10/26 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
爱心捐书倡议书
2015/04/27 职场文书
基层党支部承诺书
2015/04/30 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
获奖感言一句话
2015/07/31 职场文书
大学新生入学感想
2015/08/07 职场文书
PHP判断是否是json字符串
2021/04/01 PHP
Winsows11性能如何? win11性能测评多核竟比Win10差了10%
2021/11/21 数码科技