vue组件封装选项卡

<template>
    <myMenu :arr='arr' :arrcontent='content'></myMenu>
</template>
<script>
import myMenu from './MyMenu'
  export default{
    data(){
      return {
        arr:['aa','bb','cc'],
        content:['aa content','bb content','cc content']
      }
    },
    components:{
        myMenu
    }
  }
</script>
//模板块 父
<template>
   <div class="tab">
        <ul>
            <li v-for="(item,ind) in this.arr" :key="ind" 
                :class="{active:cur===ind}"
                @click="cur=ind">{{item}}</li>
        </ul> 
        <div class="content">
            <component :is="list[cur]"></component>
        </div>  
    </div>
</template>
<script>
    export default{
        props:['arrcontent','arr'], 
        data(){
            return {
                cur:0,
                list:[]
            }
        },
        created(){
            for(let i = 0; i<this.arrcontent.length ; i++){
                    this.list.push({template:'<div>'+this.arrcontent[i]+'</div>'})
            }
        }
    }
</script>
<style scoped>
    ul{
        list-style: none;
        margin: 0;
        padding: 0;
        overflow: hidden;
    }
    li{
        width: 100px;
        text-align: center;
        float: left;
    }
    .active{
        background: skyblue;
        color: white;
    }
    .content{
        width: 300px;
        height: 250px;
        background: salmon;
        font-size: 50px;
        line-height: 250px;
    }
    .tab{
        overflow: hidden;
    }
</style>
//子组件

效果图 基于vue-cli的组件

转载于:https://www.cnblogs.com/l8l8/p/9379638.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值