使用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 相关文章推荐
通过JAVAScript实现页面自适应
Jan 19 Javascript
js图片延迟加载的实现方法及思路
Jul 22 Javascript
js获取下拉列表框中的value和text的值示例代码
Jan 11 Javascript
改变状态栏文字的js代码
Jun 13 Javascript
浅谈js数据类型判断与数组判断
Aug 29 Javascript
jQuery Ajax 实现在html页面实时显示用户登录状态
Dec 30 Javascript
jQuery ajax的功能实现方法详解
Jan 06 Javascript
vue-resource 拦截器使用详解
Feb 21 Javascript
利用JavaScript在网页实现八数码启发式A*算法动画效果
Apr 16 Javascript
判断div滑动到底部的scroll实例代码
Nov 15 Javascript
关于vue3.0中的this.$router.replace({ path: '/'})刷新无效果问题
Jan 16 Javascript
Vue表单控件数据绑定方法详解
Feb 05 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
PDO版本问题 Invalid parameter number: no parameters were bound
2013/01/06 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
Yii2中如何使用modal弹窗(基本使用)
2016/05/30 PHP
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
JS去除数组重复值的五种不同方法
2013/09/06 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
使用 TypeScript 重新编写的 JavaScript 坦克大战游戏代码
2015/04/07 Javascript
jQuery实现鼠标经过图片变亮其他变暗效果
2015/05/08 Javascript
angularjs自定义ng-model标签的属性
2016/01/21 Javascript
第二次聊一聊JS require.js模块化工具的基础知识
2016/04/17 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
js模拟微博发布消息
2017/02/23 Javascript
JavaScript中Promise的使用详解
2017/02/26 Javascript
es7学习教程之Decorators(修饰器)详解
2017/07/21 Javascript
iview中Select 选择器多选校验方法
2018/03/15 Javascript
如何制作一个Node命令行图像识别工具
2018/12/12 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
简单学习Python time模块
2016/04/29 Python
python实现键盘控制鼠标移动
2020/11/27 Python
实例讲解Python3中abs()函数
2019/02/19 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
美国高品质个性化珠宝销售网站:Jewlr
2018/05/03 全球购物
Delphi工程师笔试题
2013/09/21 面试题
令人啧啧称赞的经理推荐信
2013/11/07 职场文书
经典演讲稿范文
2013/12/30 职场文书
简单谈谈Python面向对象的相关知识
2021/06/28 Python