当前位置: 首页 > news >正文

uniapp实现的Tab 选项卡组件模板

采用 uniapp 实现的一款简约美观的 tabs 标签页组件模板,纯 CSS、HTML 实现,具备丝滑的过渡切换效果,用户完全可根据自身需求进行更改、扩展
适配 web、H5、微信小程序(其他平台小程序未测试过,可自行尝试)

可到插件市场下载尝试:https://ext.dcloud.net.cn/plugin?id=25722

  • 示例
    请添加图片描述
    在这里插入图片描述

props 属性

tabOptions

选项卡 tab 数组,必须具备 type、title 字段

tabOptions: {type: Array,default() {return [{type: "send",title: "火车票",},{type: "receive",title: "机票",},];},
},

defaultTab

默认选中 tab

defaultTab: {type: String,default: "send",
},

事件

@onChange

切换 tab 时触发

使用示例

vue2 写法

<template><view class="card"><tabsComp:tabOptions="tabOptions":defaultTab="defaultTab"@onChange="onChangeTab"><view><viewv-if="tabValue === 'send'"style="height: 300rpx"class="flex-center">火车票模块</view><viewv-if="tabValue === 'receive'"style="height: 300rpx"class="flex-center">机票模块</view></view></tabsComp></view>
</template>
<script>
import tabsComp from "./components/tabs-comp.vue";
export default {components: {tabsComp,},data() {return {defaultTab: "send", // 默认选中的tabtabOptions: [{type: "send",title: "火车票",},{type: "receive",title: "机票",},],tabValue: "send", // 当前选中的tab};},methods: {onChangeTab(type) {this.tabValue = type;},},
};
</script><style lang="scss" scoped>
.flex-center {display: flex;justify-content: center;align-items: center;
}
.card {padding: 40rpx 20rpx;background-color: #f5f5f5;height: 100%;
}
</style>

vue3 写法

<template><view class="card"><tabsComp:tabOptions="tabOptions":defaultTab="defaultTab"@onChange="onChangeTab"><view><viewv-if="tabValue === 'send'"style="height: 300rpx"class="flex-center">火车票模块</view><viewv-if="tabValue === 'receive'"style="height: 300rpx"class="flex-center">机票模块</view></view></tabsComp></view>
</template>
<script setup>
import { ref } from "vue";
import tabsComp from "./components/tabs-comp.vue";const defaultTab = "send"; // 默认选中的tab
const tabOptions = [{type: "send",title: "火车票",},{type: "receive",title: "机票",},
];
const tabValue = ref(defaultTab);function onChangeTab(type) {tabValue.value = type;
}
</script><style lang="scss" scoped>
.flex-center {display: flex;justify-content: center;align-items: center;
}
.card {padding: 40rpx 20rpx;background-color: #f5f5f5;height: 100%;
}
</style>
http://www.dtcms.com/a/568803.html

相关文章:

  • 学习Linux——网络基础管理
  • 杭州做网站比较出名的公司有哪些网站 内容建设存在的问题
  • C# ASP.NET MVC Model 分类:数据传输对象(DTO)—— 跨层传数的 “精简快递“
  • Elasticsearch 7.0 介绍与配置详解
  • 如何理解前端开发中框架一词及其优点?
  • ELK学习记录
  • Paho MQTT C 客户端源码深入解析
  • 零基础学AI大模型之RAG系统链路构建:文档切割转换全解析
  • Vue 核心语法详解:模板语法中的绑定表达式与过滤器(附 Vue3 替代方案)
  • CentOS7.6 部署 k3s 单机版
  • 【算法训练营 · 专项练习篇】Stream流与函数式编程
  • 泰州企业做网站百度地图怎么导航环线
  • int8_to_float(output_tensor->data.int8, output_float, load_class_num);
  • 使用Nmap扫描某个服务器所有开放端口
  • 如何看网站是用什么程序做的如何把qq音乐导入到wordpress
  • SpringCloud网关实战:路由与鉴权全解析
  • 基于ResNet50和PyTorch的猫狗图像分类系统设计与实现
  • 自回归模型例题(AR)与ACF/PACF图绘制
  • ESP32-WROOM-32E LED点灯系列
  • 《红色脉络:一部PLMN在中国的演进史诗 (1G-6G)》 第15篇 | 结语:无尽的前沿——PLMN的未来与中国的全球角色
  • 付网站开发费计入什么科目seo外包杭州
  • 外贸网站域名被封免费网络游戏大全
  • PySide6 Win10记事本从零到一——第七章 格式菜单界面与功能实现
  • PDF文件损坏打不开怎么修复?2025年最新修复工具测评与对比
  • 谈谈MYSQL索引失效场景
  • Qwen-Image-Edit本地到底如何部署使用?怎么还有comfyui
  • 佳能LBP6018L打印浅淡问题的尝试性解决方法
  • 微算法科技(NASDAQ MLGO):以隐私计算区块链筑牢多方安全计算(MPC)安全防线
  • SpringCache :让缓存开发更高效
  • 电路分析 | Phasor Analysis(篇 1)