本文介绍: 有两个要传递的参数,选项名tabTitle,激活的选项索引activeIndex.还有一个要传递的事件handleChange,该事件有一个参数index。组件:文件src/components/TabBlock/index.vue。
<template>
<div>
<div class="tabStyle">
<div v-for="(item,index) in tabTitle" :key="index" class="bordItemStyle" :class="choseIndex===index?'itemActiveStyle':'itemStyle'" @click="handleChose(index)">
{{item}}
</div>
</div>
</div>
</template>
<script>
export default {
name: "home",
data() {
return {
choseIndex: 0,
tabTitle:['近7天','近15天','近30天'],
}
},
mounted() {
},
methods: {
handleChose(index) {
this.choseIndex = index;
},
}
}
</script>
<style lang="scss" scoped>
.tabStyle {
display: flex;
.itemStyle {
background-color: #ffffff;
}
.itemActiveStyle {
color: #ffffff;
background-color: #025DF4;
}
.itemStyle,
.itemActiveStyle {
padding: 8px 20px;
cursor: pointer;
}
.bordItemStyle {
border-top: 1px solid rgb(220, 223, 230);
border-bottom: 1px solid rgb(220, 223, 230);
border-left: 1px solid rgb(220, 223, 230);
&:last-child {
border-right: 1px solid rgb(220, 223, 230);
}
}
}
</style>
2、转换为组件代码
组件:文件src/components/TabBlock/index.vue
有两个要传递的参数,选项名tabTitle,激活的选项索引activeIndex.还有一个要传递的事件handleChange,该事件有一个参数index。
<template>
<div>
<div class="tabStyle">
<div v-for="(item,index) in tabTitle" :key="index" class="bordItemStyle" :class="activeIndex===index?'itemActiveStyle':'itemStyle'" @click="$emit('handleChange',index)">
{{item}}
</div>
</div>
</div>
</template>
<script>
export default {
name: "TabBlock",
props: {
tabTitle: {
type: Array,
default: ''
},
activeIndex: {
type: Number,
default: ''
},
},
data() {
return {
}
},
mounted() {
},
methods: {
}
}
</script>
<style lang="scss" scoped>
.tabStyle {
display: flex;
.itemStyle {
background-color: #ffffff;
}
.itemActiveStyle {
color: #ffffff;
background-color: #025DF4;
}
.itemStyle,
.itemActiveStyle {
padding: 8px 20px;
cursor: pointer;
}
.bordItemStyle {
border-top: 1px solid rgb(220, 223, 230);
border-bottom: 1px solid rgb(220, 223, 230);
border-left: 1px solid rgb(220, 223, 230);
&:last-child {
border-right: 1px solid rgb(220, 223, 230);
}
}
}
</style>
<template>
<div>
<TabBlock :tabTitle="titles" :activeIndex="choseIndex" @handleChange="handleChose"></TabBlock>
</div>
</template>
<script>
import TabBlock from '@/components/TabBlock/index.vue'
export default {
name: "home",
components:{
TabBlock
},
data() {
return {
titles:['近7天','近15天','近30天'],
choseIndex:0,
}
},
mounted() {
},
methods: {
handleChose(index){
this.choseIndex = index;
console.log("选中的索引",this.choseIndex)
console.log("选中的名称",this.titles[this.choseIndex])
}
}
}
</script>
<style lang="scss" scoped>
</style>
效果:
原文地址:https://blog.csdn.net/qq_43840793/article/details/134650066
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_7709.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。