码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Vue3实现tab切换


    Vue3实现tab切换

    使用 ref 创建了 tabs、contents 和 currentTab 这三个响应式变量,分别存储选项卡的文字、内容以及当前选中的选项卡索引。当点击某个选项卡时,调用 changeTab 函数来切换选项卡,并更新 currentTab 的值,从而更新选项卡的样式。

    在样式中,我们定义了选项卡的样式,并且通过 v-show 来控制显示对应选项卡的内容。

    最终效果就是点击不同的选项卡会切换到对应的内容,并且选中的选项卡文字带下划线,下划线宽度比文字宽度短,并且与文字居中。

    <template>
      <div>
        <div class="tab-container">
          <div
            v-for="(tab, index) in tabs"
            :key="index"
            @click="changeTab(index)"
            :class="{ 'selected': currentTab === index }"
            class="tab-item"
          >
            <span>{{ tab }}</span>
            <div v-if="currentTab === index" class="underline"></div>
          </div>
        </div>
        <div class="content-container">
          <div v-for="(content, index) in contents" :key="index" v-show="currentTab === index">
            {{ content }}
          </div>
        </div>
      </div>
    </template>
    
    <script setup lang="ts">
    import { ref } from 'vue';
    
    const tabs = ref(['Tab 1', 'Tab 2', 'Tab 3']);
    const contents = ref(['Content 1', 'Content 2', 'Content 3']);
    const currentTab = ref(0);
    
    const changeTab = (index: number) => {
      currentTab.value = index;
    };
    </script>
    
    <style scoped>
    .tab-container {
      display: flex;
    }
    
    .tab-item {
      cursor: pointer;
      margin-right: 20px;
      position: relative;
    }
    
    .underline {
      position: absolute;
      bottom: 0;
      left: 50%;
      width: 50%; /* 下划线宽度比文字宽度短 */
      height: 2px;
      background-color: blue;
      transform: translateX(-50%);
    }
    
    .selected {
      font-weight: bold;
    }
    
    .content-container {
      margin-top: 20px;
    }
    </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
  • 相关阅读:
    39.cuBLAS开发指南中文版--cuBLAS中的Level-2函数hpr()
    VirtualFree函数逆向分析笔记
    LeetCode·每日一题·
    在Xamarin.Android项目中调用自己写的java jar包
    解决微信小程序回调地狱问题
    计网--网络层
    【模型量化】AIMET文档 - AIMET TensorFlow Quantization SIM API
    【力扣·每日一题】1774. 最接近目标价格的甜点成本 (dfs搜索 动态规划 Go)
    STC单片机定时器0手动状态脉冲定时器2自动状态脉冲加减速控制
    k8s pod使用sriov
  • 原文地址:https://blog.csdn.net/qq_45914628/article/details/136424690
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号