Vue实现Tab控件
前端  /  管理员 发布于 6年前   283
使用vue实现Tab功能。创建一个tab.vue文件,内容如下:
<template> <div class="tab_box"> <!--这里是tab的每一项--> <div v-for="item in tabs" :key="'tabItem' + item.id" :class="['tab_item', {'active_tab':currentTab === item.id}]" @click="changeTab(item.id)"> {{item.label}} </div> </div></template><script>export default { data () { return { currentTab: '' // 用于记录tab当前所在项的id } }, props: ['tabs'], // 需要父组件传入 methods: { changeTab (id) { this.currentTab = id this.$emit('changed', id) // 点击tab时触发changed方法,由父组件处理 } }, mounted: function () { this.currentTab = this.tabs[0].id // 默认下划线在第一项 }}</script><style>.tab_box{ width:100%; display:table;}.tab_item{ display:table-cell; padding: 3px 8px 4px 8px; /*如果想修改tab内的字体颜色和tab样式,在这里修改*/}.active_tab { /*这是下划线样式,可以根据需要修改*/ border-bottom: 2px solid grey;}</style>
在父组件调用:
<tab @changed="change" :tabs="tabs"></tab>
其中change方法和tabs需要父组件中定义,tabs的格式如下:
tabs: [ {'id': 't1', 'label': 'TAB1'}, {'id': 't2', 'label': 'TAB2'}, {'id': 't3', 'label': 'TAB3'}, {'id': 't4', 'label': 'TAB4'}, {'id': 't5', 'label': 'TAB5'} ],
为确保正确渲染,id需要保证唯一性。label为tab显示的内容。change方法如下:
change (data) { //这里写切换tab之后你需要做的事,data为切换后的tabId this.message = 'this is ' + data + ', do whatever you want'}
最终效果如下:
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号