【Vue3】基于Vue3开发tab切换功能

 

 

 

<template>
    <div class="radioGroups">
        <div @click="clickItem(key)"
             :class="{'item-checked':tab_value===key,'item-default':tab_value!==key}"
             v-for="(content,key) in radioGroupContents" :key="key">
            {{content}}
        </div>
    </div>
</template>

<script>
    import { reactive, toRefs } from "vue";

    export default {
        name: "HelloWorld",
        props: {
            msg: String,
        },

        setup() {
            let _data = reactive({
                radioGroupContents: ["春季", "夏季", "秋季", "冬季"],
                // 这里初始化为undefined【不等于任何值】确保首次不选择任何ab不选择!
                tab_value: undefined,
                itemChecked: false,
            });

            function clickItem(key) {
                _data.tab_value = key;
            }


            return {
                ...toRefs(_data),
                clickItem,
            };
        },
    };
</script>


<style scoped lang="scss">

    .radioGroups {
        width: 400px;
        background: red;
        display: flex;
        justify-content: space-between;
        margin: 0 auto;

        .item-default {
            padding: 2px;
            margin: 2px;
            width: 80px;
            height: 20px;
            border: 2px solid #000;
            border-radius: 5px;
        }

        .item-checked {
            @extend .item-default;
            background: #F0F8FF url("../assets/gou.png") no-repeat right;
            background-size: 30px 30px;
        }
    }


</style>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值