Skip to content

Tabs 选项卡

预览
01:38

组件名:rice-tabs

平台兼容性

uni-app x

AndroidiOS鸿蒙Next微信小程序h5

基础用法

通过 v-model 控制当前选中的tab

html
<rice-tabs v-model="activeIndex" :list="list" @clickTab="tabClick"></rice-tabs>
<script setup lang="ts">
import { TabsOptions, TabsClickTab, TabsChange } from '@/uni_modules/rice-ui';
const activeIndex = ref(0)
const list = ref<TabsOptions[]>([{
  name: '推荐',
  value: 'recommedn'
  }, {
  name: '关注',
  }, {
  name: '我的收藏',
  }, {
  name: '粉丝',
  }, {
  name: '电影',
  }, {
  name: '音乐',
  }, {
  name: '科技',
  }, {
  name: '美食节目',
  }, {
  name: '财经',
  }
])
const tabClick = (e : TabsClickTab) => {
  console.log('TabsClickTab', e)
  uni.showToast({
    title: `点击了:${e.name}${e.disabled ? '(禁用)' : ''}`,
    icon: 'none'
  })
}
</script>

显示徽标

html
<rice-tabs v-model="activeIndex2" :list="listBadge"></rice-tabs>
<script setup>
const listBadge = ref<TabsOptions[]>([{
  name: '推荐',
  badge: {
    isDot: true
  },
}, {
  name: '关注',
  badge: {
    value: 10,
  },
}, {
  name: '我的收藏',
  badge: {
    value: 999,
  },
}, {
  name: '粉丝',
}])
</script>

左右插槽

html
<rice-tabs v-model="activeIndex3" :list="list">
  <template #left>
    <view class="slot-left">
      <rice-icon name="scan" size="17px"></rice-icon>
    </view>
  </template>
  <template #right>
    <view class="slot-right">
      <rice-icon name="app" size="17px"></rice-icon>
    </view>
  </template>
</rice-tabs>

API

Props

属性名类型说明默认值
v-model /model-valuenumber当前选中的索引0
listTabsOptions[]标签数组-
bg-colorString背景颜色-
heightString|Number高度-
shrinkBoolean是否开启收缩布局,开启后内容会向左收缩,默认false-
title-active-colorString选中时的文字颜色-
title-inactive-colorString未中时的文字颜色-
line-colorString滑块颜色-
line-widthString|Number滑块宽度,默认20px,设置为 0 就不显示滑块,设置为 '100%' 就是和内容区的宽度一致-
line-heightString|Number滑块高度,默认3px-
item-styleObject菜单item的样式-
active-styleObject菜单选中时的样式-
inactive-styleObject菜单未选中时的样式-
custom-styleObject自定义样式-

Slot

名称说明
left左侧内容
right右侧内容

类型定义

ts
type TabsOptions = {
  name : string,
  value ?: string | number,
  disabled ?: boolean,
  badge ?: BadgeProps
}
type TabsClickTab = {
  index : number,
  name : string,
  value ?: string | number,
  disabled : boolean,
}
type TabsChange = {
  index : number,
  name : string,
  value ?: string | number,
  disabled : boolean,
}

组件导出如下类型

ts
// 组件类型
const tabsRef = ref<RiceTabsComponentPublicInstance | null>(null)