更新记录

1.0.0(2026-10-16) 下载此版本

新增

  • 首次发布
  • 通用标签栏组件:type='line' 下划线指示器 / type='capsule' 胶囊高亮
  • 灵活数据源:tabs 支持 string 数组或 {title, badge, disabled} 对象数组,可混合
  • 支持徽标 badge 与禁用 disabled
  • 支持横向滚动 scrollable,自动定位到激活项
  • 颜色、高度、字号、指示条尺寸全部可配
  • 通过 v-model 双向绑定选中索引,@change 获取 { index, item }

平台兼容性

uni-app x(5.26)

Chrome Safari Android iOS 鸿蒙 微信小程序
√ √ √ √ √ √

ry-tabs-x 通用标签栏组件

作者:Howe

通用标签栏组件(uni-app x / UTS 版):type='line' 下划线指示器 / type='capsule' 胶囊高亮双形态。tabs 支持字符串或对象混合数组,内建徽标、禁用、横向滚动,颜色尺寸全部可配,一套 API 覆盖顶部页签、分类筛选、轻量导航。

需要 uni-app(vue)版本请使用 ry-tabs 插件。

安装

三种方式任选其一。

方式一:源码放到 components 目录(推荐)

下载源码后,把组件放到项目的 components/ry-tabs/ry-tabs.uvue,保持该目录结构,即符合 easycom 默认规则,uni-app x 自动注册,无需任何配置。

页面直接写 <ry-tabs />。

方式二:手动导入

组件放在其他任意位置时,显式导入注册即可,与 easycom 不冲突(显式导入优先生效):

import ryTabs from '@/components/ry-tabs/ry-tabs.uvue'

方式三:uni_modules 导入

通过 HBuilderX 从插件市场导入 uni_modules,组件位于 uni_modules/ry-tabs-x/components/ry-tabs/ 下,同样自动注册,无需 import。

使用示例

<template>
  <!-- 1. 最简用法:字符串数组 + v-model -->
  <ry-tabs v-model="current" :tabs="['全部', '待付款', '待发货', '已完成']"/>

  <!-- 2. 对象数组:徽标 + 禁用 -->
  <ry-tabs
    v-model="current"
    :tabs="[
      { title: '消息', badge: 8 },
      { title: '通知', badge: 'NEW' },
      { title: '已关闭', disabled: true }
    ]"
  />

  <!-- 3. 胶囊形态 + 自定义主题色 -->
  <ry-tabs v-model="current" type="capsule" active-color="#ff5500" :tabs="tabs"/>

  <!-- 4. 横向滚动(标签过多时) + change 事件 -->
  <ry-tabs v-model="current" :scrollable="true" :tabs="tabs" @change="onChange"/>
</template>

<script setup lang="uts">
    const current = ref(0)
    const tabs = [
        { title : '推荐' },
        { title : '热榜' },
        { title : '关注' }
        /* ...更多标签 */
    ]
    const onChange = (e : UTSJSONObject) => {
        console.log('当前索引:', e['index'], '当前项:', e['item'])
    }
</script>

Props

参数 类型 默认值 说明
modelValue Number 0 当前选中索引(v-model)
tabs Array [] 标签数据:string 数组或 {title, badge, disabled} 对象数组,可混合
type String 'line' 形态:'line' 下划线 / 'capsule' 胶囊
scrollable Boolean false 是否横向滚动(标签过多时开启,自动定位到激活项)
activeColor String #3c9cff 激活颜色(下划线/胶囊背景/激活文字)
inactiveColor String #666666 未激活文字颜色
disabledColor String #c0c4cc 禁用文字颜色
background String #ffffff 背景色
height Number 88 标签栏高度(rpx)
fontSize Number 28 文字字号(rpx)
lineWidth Number 40 下划线宽度(rpx)
lineHeight Number 6 下划线高度(rpx)
badgeColor String #fa3534 徽标背景色
badgeSize Number 20 徽标字号(rpx)

Events

事件名 说明 回调参数
update:modelValue 选中索引同步(v-model) value: Number
change 点击切换标签后触发 e: { index, item },item 为传入 tabs 的原始元素

技术支持

  • 微信:howe1144(一定在线,紧急问题首选)
  • QQ 群:415367029(常规问题,群友互助,作者可能在线)
  • ***(很少在线)
  • 插件市场评论区:回复不及时,仅适合不着急的留言反馈

支持与赞赏

如果你觉得本插件解决了你的问题,可以考虑支持作者:

支付宝赞助 微信赞助

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。