使用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 相关文章推荐
用jscript实现列出安装的软件列表
Jun 18 Javascript
IE8下关于querySelectorAll()的问题
May 13 Javascript
关于全局变量和局部变量的那些事
Jan 11 Javascript
基于jQuery创建鼠标悬停效果的方法
Mar 07 Javascript
Bootstrap学习笔记之js组件(4)
Jun 12 Javascript
jQuery深拷贝Json对象简单示例
Jul 06 Javascript
再谈javascript常见错误及解决方法
Sep 16 Javascript
js判断iframe中元素是否存在的实现代码
Dec 24 Javascript
jQuery实现select模糊查询(反射机制)
Jan 14 Javascript
浅谈Vue.js
Mar 02 Javascript
如何在基于vue-cli的项目自定义打包环境
Nov 10 Javascript
小程序云开发之用户注册登录
May 18 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新手上路(三)
2006/10/09 PHP
PHP程序员编程注意事项
2008/04/10 PHP
是 WordPress 让 PHP 更流行了 而不是框架
2016/02/03 PHP
PHP的imageTtfText()函数深入详解
2021/03/03 PHP
jQuery 连续列表实现代码
2009/12/21 Javascript
JavaScript 内置对象属性及方法集合
2010/07/04 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
jquery+css3实现会动的小圆圈效果
2016/01/27 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
微信小程序实现的图片保存功能示例
2019/04/24 Javascript
JS实现查找数组中对象的属性值是否存在示例
2019/05/24 Javascript
vue将文件/图片批量打包下载zip的教程
2020/10/21 Javascript
[01:01:52]DOTA2-DPC中国联赛定级赛 SAG vs iG BO3第二场 1月9日
2021/03/11 DOTA
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
Python实现将doc转化pdf格式文档的方法
2018/01/19 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
Python针对给定列表中元素进行翻转操作的方法分析
2018/04/27 Python
redis数据库及与python交互用法简单示例
2019/11/01 Python
BeautifulSoup中find和find_all的使用详解
2020/12/07 Python
python RSA加密的示例
2020/12/09 Python
HTML5 新旧语法标记对我们有什么好处
2012/12/13 HTML / CSS
可爱的童装和鞋子:Fabkids
2019/08/16 全球购物
计算机网络专业推荐信
2013/11/24 职场文书
大学生创业计划书的范文
2014/01/07 职场文书
一年级学生评语大全
2014/04/21 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
办公室文员岗位职责
2015/02/04 职场文书
暑期实践个人总结
2015/03/06 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
js实现上传图片到服务器
2021/04/11 Javascript
《艾尔登法环》1.03.3补丁上线 碎星伤害调整
2022/04/07 其他游戏