技术标签: vue 前端 vue.js javascript
一个简单的tab栏切换组件,由tabs以及tab-pane组成
效果图
使用
<template>
<div class="container">
<tabs
default-active="2"
class="build-tabs"
>
<tab-pane
label="tab栏标题1"
index="1"
>tab栏内容1</tab-pane>
<tab-pane
label="tab栏标题tab栏标题2"
index="2"
>
tab栏内容2
</tab-pane>
<tab-pane
label="tab栏标题"
index="3"
>tab栏内容3</tab-pane>
<tab-pane
label="标题"
index="4"
>tab栏内容4</tab-pane>
<tab-pane
label="tab栏标题3"
index="5"
>tab栏内容5</tab-pane>
</tabs>
</div>
</template>
tabs
<template>
<div
v-show="pans.length"
class="tabs"
>
<div class="tab-title">
<div
v-for="(item) in pans"
:key="item.id"
class="item"
:class="{ 'active': currentActive === item.index }"
@click="changeTab(item.index)"
>{
{ item.label }}</div>
</div>
<div class="tab-content">
<slot></slot>
</div>
</div>
</template>
<script>
export default {
props: {
mode: {
type: String,
default: "horizontal/vertical"
},
defaultActive: {
type: String | Number,
default: '1'
},
defaultColor: {
type: String,
default: '#409EFF'
}
},
data: () => {
return {
currentActive: '',
pans: []
}
},
computed: {
},
watch: {
defaultActive: {
handler (newVal) {
this.currentActive = newVal
},
immediate: true
}
},
mounted () {
},
methods: {
changeTab (val) {
this.currentActive = val
},
}
}
</script>
<style scoped lang="scss">
::root {
--color: "#409EFF";
}
.tabs {
.tab-title {
display: flex;
// align-items: flex-start;
align-items: stretch; // 侧边栏时,使侧栏高度与内容高度一致,按最高的显示
margin-bottom: 14px;
border-bottom: 1px solid #ccc;
.item {
padding: 20px;
/* padding-bottom: 20px; */
cursor: pointer;
white-space: nowrap;
}
.active {
// color: var(--color);
color: #409EFF;
/* padding-bottom: 15px; // 修正边框值:20px - 5px = 15px */
border-bottom: 5px solid #409EFF;
background-image: linear-gradient(
to top,
rgba($color: #409EFF, $alpha: 0.2),
transparent
);
}
}
}
</style>
tab-pane
<template>
<div
v-show="show && renderPan"
class="tab-pane"
>
<slot></slot>
</div>
</template>
<script>
export default {
name: 'tabPane',
props: {
index: {
type: [String, Number],
default: ''
},
label: {
type: String,
required: true
}
},
data: () => {
return {
renderPan: false
}
},
computed: {
show () {
if (this.$parent.currentActive === this.index) return true
return false
}
},
mounted () {
this.$parent.pans.push({
id: Date.parse(new Date()) + Math.random(), index: this.index, label: this.label });
this.renderPan = true
},
methods: {
},
}
</script>
<style scoped lang="scss">
</style>
文章浏览阅读1.4w次。如果是普通账户密码忘了请用第一种方法。方法(一)重新启动电脑,启动到系统登录界面时,同时按住Ctrl+Alt键,然后连击Del键两次,会出现新的登录界面,用户名处输入“Administrator”密码为空,回车即可登录,登录后,打开控制面板选/用户账户/更改账户/点击原来的“账户名”/更改我的密码/输入新密码,再次输入新密码,然后点击“更改密码”按钮即可。如果是计算机管理员密码忘了,请用第二种方法..._w10系统不知道电脑的账户密码是多少
文章浏览阅读1.2w次,点赞7次,收藏76次。MQ全称是MessageQueue(消息队列),是保存消息在传输过程中的一种容器,既是存储消息的一种中间件。多是应用在分布式系统中进行通信的第三方中间件,如下图所示,发送方成为生产者,接收方称为消费者。............_mq
文章浏览阅读1.5k次,点赞47次,收藏18次。Bug分析是QA的一项主要技能,需要针对项目中遇到的经典问题进行分类分析, 直达问题本质。 并且能够给团队其他项目或者成员起到典型的借鉴作用。 当然也有一些非常经典的问题可以进行技术深挖, 以供参考。 个人认为比较典型的「Bug分析」是stackoverflow, 当然, 一个完善的bug分析库, 可以进行问题分类总结。 对于测试新人是有很大的帮助的。本质上, 在测试领域很多问题是可重现可整理可规避的。另外, bug分析本身是为了拓宽每个人的认知边界, 缩小团队间的乔哈里窗以达到最佳的合作状态。一个「好的B
文章浏览阅读800次。HQST导读:PULSE普思是网络通讯行业中龙头企业之一,其中网络变压器产品大都由国内代工厂代为生产,H5020NLHX5020NL千兆四口网络变压器是普思公司经典老牌产品,相对整个市场用量不是很大,集中生产约一月20万颗左右……PULSE普思是网络通讯行业中龙头企业之一,其中网络变压器产品大都由国内代工厂代为生产,H5020NLHX5020NL千兆四口网络变压器是普思公司经典老牌产品,相对整个市场用量不是很大,集中生产约一月20万颗左右,……PULSE H5020NL千兆网络变压器对应HQS._4口网络变压器
文章浏览阅读242次,点赞3次,收藏9次。交换机,壳体采用镀锌钢板,结构紧凑,支持八个百兆端口,可配置一至四个百兆光纤端口。两路冗余电源设计,支持4pin可插拔端子,交直流通用,同时提供电源防接保护及过压、欠压保护,极大提升产品工作的稳定性。2.支持两路冗余电源设计,4pin可插拔端子,支持12~36V宽电压输入,交直流通用,同时提供电源防反接保护及过压、欠压保护,极大提升产品工作的稳定性。4.-40℃~75℃工作温度,-40~85℃存储温度,在极端气象条件下也能安全运行。8.支持IEEE802.3,IEEE802.3u,IEEE802.3x。
文章浏览阅读946次。Hi,我是阿昌,今天教你如何使用通义灵码。_通义灵码
文章浏览阅读1.3k次。背景看MeterSphere文档推荐5.7,但是因为我本地和服务器均为8.0版本,考虑到已经有很多服务在使用MySQL服务,而且相对来说,8.0比5.7性能更好,其他地方也更好些,所以就尝试直接用Mysql8.0部署本地环境:Windows10 MySQL8.0.18关于为什么会推荐使用MySQL5.7,其实主要原因是他们后端的sql有些group by语句在高版本的MySQL中是不合法的。MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_G.._metersphere mysql
文章浏览阅读923次。我们知道最基本的就是继承View,下面我们结合一个例子对重写进行简单地分析: 继承一个view,都会有一个或多个构造方法,在不同的时候调用到不同的构建方法,一般会重写三个方法,onMeasure();onLayout();onDraw();分别是测量,定位和画下面说下,android中重写view时,经常会遇到的混淆:requestLayout(),invalidate_自定义控件通常要重写哪些方法
文章浏览阅读120次。2019独角兽企业重金招聘Python工程师标准>>> ..._负载加证书原理过程
文章浏览阅读3.3k次。01、TGI3D首先出场的是TGI3D,这个插件是我发目前认为最强大的插件。因为它可以处理线、面、体、贴图,还可以照片匹配建模,这个照片匹配建模不是SketchUp自带的那种简单匹配,而是可以匹配超复杂的模型。简直爱不释手,但遗憾的是这个插件是一个商业版的插件。02、SoapskinbubbleSoapskinbubble,这是个极富梦幻色彩的插件。其原理是以最适合的曲面来封闭几条规定的空间曲线,..._su curvioft
文章浏览阅读2.4k次。1. 忽略值为NULLGson gson = new GsonBuilder().serializeNulls().create(); 2. 使用Java关键字transientclass Item { String name; public transient int age; } 3. 使用@Expose注解class Item { String name; @Ex_java po排除某个字段
文章浏览阅读640次,点赞6次,收藏18次。网关是一个大的概念,没有特指是什么设备,很多设备都可以做网关,普通的PC机也能做,常用的网关设备是路由器。网关的作用主要是用来连接两个不同的网络,比如可以连接两个IP地址不相同的网络,或连接两个操作系统不同的网络,如WINDOWS与LINUX互连,或连接两个网络协议不同的网络,如TCP/IP与IPX.或拓扑结构不同的网络,如以太网和令牌环网。总之网关是一种中间媒介。而防火墙也可以做网关,但它的主要做用只是用来防病毒或防黑客,网关只算是防火墙的一个功能。网关与防火墙的区别。