Skip to content

xtf-tabs

组件说明

xtf-tabs 是标签切换组件,适用于内容分组和筛选;支持滚动、吸顶、可关闭标签及切换前拦截。 核心能力以当前 xtf-tabs.vue 源码为准。


基础用法

1. 基础用法

最小配置下即可完成常见业务交互:

vue
<template>
  <xtf-tabs :value="value" :items="items" @update:value="value = $event" @change="onEvent" />
</template>

<script>
export default {
  data() {
    return {
      value: 0,
      items: [
        { label: '全部', value: 0 },
        { label: '待处理', value: 1, badge: 3 }
      ]
    }
  },
  methods: {
    onEvent(payload) {
      console.log('组件事件', payload)
    }
  }
}
</script>

2. 核心交互

监听组件事件并维护页面状态:

vue
<template>
  <xtf-tabs
    :value="value"
    :items="items"
    @update:value="value = $event"
    variant="card"
    equal
    @change="onEvent"
  />
</template>

<script>
export default {
  data() {
    return {
      value: 0,
      items: [
        { label: '全部', value: 0 },
        { label: '待处理', value: 1, badge: 3 }
      ]
    }
  },
  methods: {
    onEvent(payload) {
      console.log('组件事件', payload)
    }
  }
}
</script>

3. 进阶配置

组合布局、样式或插槽能力:

vue
<template>
  <xtf-tabs
    :value="value"
    :items="items"
    @update:value="value = $event"
    scrollable
    closable
    addable
    @close="onEvent"
    @add="onEvent"
  />
</template>

<script>
export default {
  data() {
    return {
      value: 0,
      items: [
        { label: '全部', value: 0 },
        { label: '待处理', value: 1, badge: 3 }
      ]
    }
  },
  methods: {
    onEvent(payload) {
      console.log('组件事件', payload)
    }
  }
}
</script>

全部属性

属性类型默认值作用描述适用范围
itemsArray函数返回值控制组件的 items 行为。按业务需要设置。
value[String, Number]undefined控制组件的 value 行为。按业务需要设置。
current[String, Number]0控制组件的 current 行为。按业务需要设置。
themeString'primary'控制组件的 theme 行为。按业务需要设置。
activeColorString''控制组件的 activeColor 行为。按业务需要设置。
inactiveColorString''控制组件的 inactiveColor 行为。按业务需要设置。
indicatorColorString''控制组件的 indicatorColor 行为。按业务需要设置。
indicatorInset[String, Number]''控制组件的 indicatorInset 行为。按业务需要设置。
indicatorAlignString'stretch'控制组件的 indicatorAlign 行为。按业务需要设置。
indicatorWidth[String, Number]''控制组件的 indicatorWidth 行为。按业务需要设置。
indicatorShapeString'line'控制组件的 indicatorShape 行为。按业务需要设置。
indicatorImageString''控制组件的 indicatorImage 行为。按业务需要设置。
indicatorImageSizeString'100% 100%'控制组件的 indicatorImageSize 行为。按业务需要设置。
indicatorImageRepeatString'no-repeat'控制组件的 indicatorImageRepeat 行为。按业务需要设置。
hideTrackIndicatorBooleanfalse控制组件的 hideTrackIndicator 行为。按业务需要设置。
hideIndicatorBooleanfalse控制组件的 hideIndicator 行为。按业务需要设置。
variantString'line'控制组件的 variant 行为。按业务需要设置。
sizeString'md'控制组件的 size 行为。按业务需要设置。
motionString'smooth'控制组件的 motion 行为。按业务需要设置。
scrollableBooleanfalse控制组件的 scrollable 行为。按业务需要设置。
equalBooleanfalse控制组件的 equal 行为。按业务需要设置。
animatedBooleantrue控制组件的 animated 行为。按业务需要设置。
stickyBooleanfalse控制组件的 sticky 行为。按业务需要设置。
offsetTop[String, Number]0控制组件的 offsetTop 行为。按业务需要设置。
stickyZIndex[String, Number]99控制组件的 stickyZIndex 行为。按业务需要设置。
stickyModeString'container'控制组件的 stickyMode 行为。按业务需要设置。
stickyContainer[Boolean, String]false控制组件的 stickyContainer 行为。按业务需要设置。
stickyDisabledBooleanfalse控制组件的 stickyDisabled 行为。按业务需要设置。
lazyRenderBooleanfalse控制组件的 lazyRender 行为。按业务需要设置。
beforeChangeFunctionnull控制组件的 beforeChange 行为。按业务需要设置。
addableBooleanfalse控制组件的 addable 行为。按业务需要设置。
closableBooleanfalse控制组件的 closable 行为。按业务需要设置。
addTextString'+'控制组件的 addText 行为。按业务需要设置。
customClassString''控制组件的 customClass 行为。按业务需要设置。
customStyle[String, Object]''控制组件的 customStyle 行为。按业务需要设置。

数据项结构

字段类型默认值说明
id/keyString | Numberindex稳定键;列表、轮播和瀑布流项目建议提供。
title/label/nameString''展示名称,具体读取字段见组件对应 prop。
disabledBooleanfalse禁用可交互项目。

事件

事件名称触发时机回调参数参数说明
input对应交互或状态变化时触发。payload参数形状以源码 $emit('input', ...) 为准。
update:value对应交互或状态变化时触发。payload参数形状以源码 $emit('update:value', ...) 为准。
update:current对应交互或状态变化时触发。payload参数形状以源码 $emit('update:current', ...) 为准。
change对应交互或状态变化时触发。payload参数形状以源码 $emit('change', ...) 为准。
lazy-change对应交互或状态变化时触发。payload参数形状以源码 $emit('lazy-change', ...) 为准。
add对应交互或状态变化时触发。payload参数形状以源码 $emit('add', ...) 为准。
close对应交互或状态变化时触发。payload参数形状以源码 $emit('close', ...) 为准。
sticky-change对应交互或状态变化时触发。payload参数形状以源码 $emit('sticky-change', ...) 为准。
sticky-scroll对应交互或状态变化时触发。payload参数形状以源码 $emit('sticky-scroll', ...) 为准。

事件使用示例

vue
<template>
  <xtf-tabs @input="onEvent" />
</template>
<script>
export default {
  methods: {
    onEvent(payload) {
      console.log('收到事件', payload)
    }
  }
}
</script>

方法

centerActiveTab(index):滚动模式下将目标标签居中。

使用示例:

js
this.$refs.tabs.centerActiveTab(1)

主题说明

  • var(--xtf-color-primary) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-primary-soft) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-success) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-success-soft) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-warning) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-warning-soft) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-danger) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-danger-soft) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-info) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-info-soft) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-color-text-secondary) 参与组件的颜色、背景、边框或动效呈现。
  • var(--xtf-tabs-text-shadow-subtle) 参与组件的颜色、背景、边框或动效呈现。
  • 视觉变体的可选值以 variantthemelayout 等属性在源码中的分支为准。

如需全局调整主题,请在 xtf-config-provider 或主题配置中覆盖上述 CSS 变量。

MIT Licensed