Skip to content

Subsection 分段器

13:10

该分段器一般用于用户从几个选项中选择某一个的场景

平台差异说明

AppH5微信小程序支付宝小程序百度小程序头条小程序QQ小程序

基本使用

  • 通过list数组参数传递分段的选项
  • 通过current指定初始化时激活的选项
html
<template>
	<u-subsection :list="list" :current="1"></u-subsection>
</template>

<script setup lang="ts">
import { ref } from 'vue'

// 定义分段器选项接口
interface SubsectionItem {
	name: string
}

// 定义响应式数据
const list = ref<SubsectionItem[]>([
	{
		name: '待发货'
	}, 
	{
		name: '待付款'
	}, 
	{
		name: '待评价'
	}
])

// 定义当前选中索引
const current = ref<number>(1)
</script>

模式选择

通过mode设置分段器的模式

  • 值为button时为按钮类型
  • 值为subsection时为分段器形式
html
<u-subsection :list="list" :current="1"></u-subsection>

是否开启动画效果

animation(默认为true)设置为true的话,分段器的三种模式滑块移动时都会有动画效果

html
<u-subsection :animation="true"></u-subsection>

颜色配置

  • 通过active-color配置激活选项的文字颜色,modesubsection时无效,此时默认为白色:
  • 通过bgColor配置背景颜色
  • 通过buttonColor配置按钮颜色,modebutton时有效
html
<u-subsection active-color="#ff9900"></u-subsection>

注意事项

如果想通过一个变量绑定current值,需要在change事件回调中修改此值,否则可能会由于props的限制,前后两次设置current为相同的值, 而导致无法通过修改current值触发分段器的变化。

html
<template>
	<view>
		<u-subsection :list="list" :current="curNow" @change="sectionChange"></u-subsection>
	</view>
</template>

<script setup lang="ts">
import { ref } from 'vue'

// 定义分段器选项接口
interface SubsectionItem {
	name: string
}

// 定义响应式数据
const list = ref<SubsectionItem[]>([
	{
		name: '待发货'
	}, 
	{
		name: '待付款'
	}, 
	{
		name: '待评价'
	}
])

const curNow = ref<number>(0)

// 定义分段器变化回调函数
const sectionChange = (index: number) => {
	curNow.value = index
}
</script>

API

Props

参数说明类型默认值可选值
list选项的数组,形式见上方"基本使用"Array--
current初始化时默认选中的选项索引值String | Number0-
active-color激活时的颜色String#303133-
inactive-color未激活时的颜色String#606266-
mode模式选择,见上方"模式选择"说明Stringbuttonsubsection
font-size字体大小,单位rpxString | Number28-
height组件高度,单位rpxString | Number70-
animation是否开启动画效果,见上方说明Booleantruefalse
bold激活选项的字体是否加粗Booleantruefalse
bg-color组件背景颜色,modebutton时有效String#eeeeef-
button-color按钮背景颜色,modebutton时有效String#ffffff-

Events

事件名说明回调参数
change分段器选项发生改变时触发index:选项的index索引值,从0开始