使用vue.js写一个tab选项卡效果
作者:勇PAN高峰 发布时间:2024-04-22 22:23:34
标签:vue,tab,选项卡
通常我们写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 选项卡
原理很简单,我们给tab选项绑定了toggle方法,点击时让active等于其index,从而给其添加了一个active类,而显示的内容也是同样的原理.比起传统操作dom方法,这个整体看上去更简洁,不过麻烦在每个tab选项卡都是一个组件.
来源:http://www.jianshu.com/p/b521d33a540b#


猜你喜欢
- python可以在处理各种数据时,如果可以将这些数据,利用图表将其可视化,这样在分析处理起来,将更加直观、清晰,以下是 利用 PyEchar
- 如何使用ADO 2x Command 对象读取数据?具体的读数据代码如下:Cmd = CType(EC.Example1
- 一、项目展示项目是一个简单实用的二维码生成器。使用者可以在生成器中输入文字生成二维码,也可以在识别器中识别二维码的内容二、项目核心代码二维码
- mutation.js代码:changeRoute(state, val) { let routeList = s
- 通过一条命令用Npm安装gulp-htmlmin:npm install gulp-htmlmin --save-dev安装完毕后,打开gu
- 问题给出一段话,由短句组成,短句之间可能被任意标点符号隔开。想要提取所有的短句。解决使用 re.split 函数,用正则式匹配的方法,一次性
- 复制 复制是从一个MySQL服务器(master)将数据拷贝到另外一台或多台MySQL服务器
- IE>6 及其它浏览器不在此文论述范围内。img 的 onload 事件,是当图片加载完成之后,就处触发。img.complete 这
- 绘制动图FuncAnimation,它的使用要求简洁且定制化程度较高。如果想将很多图片合并为一个动图,那么ArtistAnimation是最
- 实验结论如果需要在循环结束后获得结果,推荐列表解析;如果不需要结果,直接使用for循环, 列表解析可以备选;除了追求代码优雅和特定规定情境,
- 前言Go大概2009年面世以来,已经8年了,也算是8年抗战。在这8年中,已经有很多公司开始使用Go语言开发自己的服务,甚至完全转向Go开发,
- jQuery之父John Resig写过一篇《Sub-Pixel Problems in CSS》,一个50px宽的div中有4个float
- 回顾装饰器的基本用法装饰器的本质是闭包,是python的一种语法糖def outer(fun): def inne
- 想买mate40,但总是抢不到,所以想试着能不能写个脚本代码。第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作
- 利用Keras构建完普通BP神经网络后,还要会构建CNNKeras中构建CNN的重要函数1、Conv2DConv2D用于在CNN中构建卷积层
- 本文实例讲述了Python实现统计给定列表中指定数字出现次数的方法。分享给大家供大家参考,具体如下:直接看实现:#!usr/bin/env
- 获取所有文章数据o := orm.NewOrm()qs := o.QueryTable("Article")12获取总条
- 本文实例讲述了JS实现点击li标签弹出对应的索引功能。分享给大家供大家参考,具体如下:需求:点击li标签,弹出对应的索引先看效果:html结
- 前言图片是Word的一种特殊内容,这篇文章主要介绍了关于Python操作word文档,向里面插入图片和表格的相关内容,下面话不多说了,来一起
- 前言遥感影像分类图一般为特定数值对应一类地物,用Python绘制时,主要在颜色的映射和对应的图例生成。plt.matplotlib.colo