Skip to content

Toggle & Group 切换按钮与组 ​

可在开与关两种状态之间切换的按钮。

基础用法 ​

网页近似预览,真机效果以 HarmonyOS 渲染为准。

受控 ​

像 v-model:pressed 一样用 !! 绑定 pressed。

网页近似预览,真机效果以 HarmonyOS 渲染为准。

切换按钮组 ​

把一组双态按钮拼接成一个控件。无论单选还是多选,value 都是字符串数组。

网页近似预览,真机效果以 HarmonyOS 渲染为准。

切换按钮组——受控 ​

网页近似预览,真机效果以 HarmonyOS 渲染为准。

API ​

从组件库源码中的 @Param / @Event / @BuilderParam 声明自动提取。

SToggle ​

shadcn-vue 的 Toggle:可开可关的两态按钮。

切换按钮自行处理点按;请通过 onPressedChange(或 !!)监听变化。在 SToggle 上使用原生 .onClick() 不会触发,因为内部的点按会优先。

属性类型默认值说明
pressed!!boolean | undefinedundefined受控状态(配合 !! 使用)。留空则为非受控。
defaultPressedbooleanfalse
variantToggleVariant
ToggleVariant = 'default' | 'outline'
'default'
sizingToggleSize
ToggleSize = 'default' | 'sm' | 'lg'
'default'
textResourceStr | undefinedundefined
iconstring | undefinedundefined前导 lucide 图标名称。
labelstring | undefinedundefined无障碍名称;纯图标切换按钮必须设置。
disabledbooleanfalse
tokensToggleTokens{}实例级令牌覆盖(实例 → 主题 --toggle-* → 配方),参见 {@link ToggleTokens}。
事件类型默认值说明
onPressedChange(pressed: boolean) => void() => { }

插槽: 子组件(尾随闭包)

SToggleGroup ​

shadcn-vue 的 ToggleGroup:一组两态按钮,连接为一个控件。

value 始终为字符串数组(type: 'single' 时最多只包含一项;再次点击已选中的项会将其清除,与 Radix 一致)。在 single 模式下,选中状态是一个在各项之间滑动的指示器(动效 key 为 toggle-group),因此切换选中项时不会出现两个项同时闪烁或交叉淡化的情况。

属性类型默认值说明
typeToggleGroupType
ToggleGroupType = 'single' | 'multiple'
'single'
value!!string[] | undefinedundefined受控的按下项(配合 !! 使用)。留空则为非受控。
defaultValuestring[][]
variantToggleVariant
ToggleVariant = 'default' | 'outline'
'default'
sizingToggleSize
ToggleSize = 'default' | 'sm' | 'lg'
'default'
disabledbooleanfalse
spacingnumber0项目之间的间距,单位 vp(对应 shadcn 的 spacing)。0 表示相连的分段。
wrapbooleanfalse放不下时将项目换行到多行(与 spacing 一起使用)。
deselectablebooleantrue仅适用于 single:再次点击已选中的项会清除选中状态(Radix 默认值:true)。
事件类型默认值说明
onValueChange(value: string[]) => void() => { }

插槽: 子组件(尾随闭包)

SToggleGroupItem ​

切换按钮组中的一项;继承该组的变体 / 尺寸。

属性类型默认值说明
valuestring''
textResourceStr | undefinedundefined
iconstring | undefinedundefined前导 lucide 图标名称。
labelstring | undefinedundefined无障碍名称;纯图标项必须设置。
disabledbooleanfalse

插槽: 子组件(尾随闭包)

MIT Licensed