# Subsection 分段器
该分段器一般用于用户从几个选项中选择某一个的场景
# 平台差异说明
App(vue) | App(nvue) | H5 | 小程序 |
---|---|---|---|
√ | √ | √ | √ |
# 基本使用
- 通过
list
数组参数传递分段的选项,数组元素可为字符串,或者通过keyName
参数传入对象(默认为name
) - 通过
current
指定初始化时激活的选项
<template>
<up-subsection :list="list" :current="1"></up-subsection>
</template>
<script setup>
import { ref } from 'vue';
const list = ref(['未付款', '待评价', '已付款']);
// 或者如果您想要使用对象数组
// const list = ref([
// { name: '未付款' },
// { name: '待评价' },
// { name: '已付款' }
// ]);
const current = ref(1);
</script>
# 模式选择
通过mode
设置分段器的模式
- 值为
button
时为按钮类型 - 值为
subsection
时为分段器形式
<up-subsection :list="list" mode="subsection" :current="1"></up-subsection>
# 颜色配置
- 通过
activeColor
配置激活选项的文字颜色 - 通过
inactiveColor
配置未激活选项的文字颜色 - 通过
bgColor
配置背景颜色,mode为button时有效(默认 '#eeeeef' )
<up-subsection activeColor="#f56c6c"></up-subsection>
# 注意事项
如果想通过一个变量绑定current
值,需要在change
事件回调中修改此值,否则可能会由于props
的限制,前后两次设置current
为相同的值,
而导致无法通过修改current
值触发分段器的变化。
<template>
<up-subsection :list="list" :current="curNow" @change="sectionChange"></up-subsection>
</template>
<script setup>
import { ref } from 'vue';
// 创建响应式引用
const list = ref(['未付款', '待评价', '已付款']);
const curNow = ref(0);
// 定义方法,注意在 setup 中不需要 this,直接访问响应式引用
function sectionChange(index) {
curNow.value = index;
}
</script>
# 右侧演示页面源代码地址
# API
# Props
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
list | 选项的数组,形式见上方"基本使用" | Array | - | - |
current | 初始化时默认选中的选项索引值 | String | Number | 0 | - |
activeColor | 激活时的颜色 | String | #3c9cff | - |
inactiveColor | 未激活时的颜色 | String | #303133 | - |
mode | 模式选择,见上方"模式选择"说明 | String | button | subsection |
fontSize | 字体大小,单位px | String | Number | 12 | - |
bold | 激活选项的字体是否加粗 | Boolean | true | false |
bgColor | 组件背景颜色,mode 为button 时有效 | String | #eeeeef | - |
keyName | 从list 元素对象中读取的键名 | String | name | - |
# Events
事件名 | 说明 | 回调参数 |
---|---|---|
change | 分段器选项发生改变时触发 | index:选项的index索引值,从0开始 |