• Vant React

Switch 开关

介绍

用于在打开和关闭状态之间进行切换。

引入

import { Switch } from "@taroify/core"

代码演示

基础用法

通过 checked 绑定开关的选中状态,true 表示开,false 表示关。

<Switch />

禁用状态

通过 disabled 属性来禁用开关,禁用状态下开关不可点击。

<Switch disabled />

加载状态

通过 loading 属性设置开关为加载状态,加载状态下开关不可点击。

<Switch loading />

自定义大小

通过 size 属性自定义开关的大小。

<Switch size="24" />

自定义颜色

通过 css 设置打开与关闭时的背景色。

<Switch className="custom-color" />
.custom-color {
  --switch-background-color: #dcdee0;
  --switch-checked-color: #ee0a24;
}

搭配单元格使用

<Cell align="center" title="标题" rightIcon={<Switch size="24" />} />

API

Props

参数说明类型默认值
defaultChecked默认开关选中状态booleanfalse
checked开关选中状态booleanfalse
loading是否为加载状态booleanfalse
disabled是否为禁用状态booleanfalse
size开关尺寸,默认单位为pxnumber | string30px

Events

事件名说明回调参数
onChange开关状态切换时触发value: boolean

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。

名称默认值描述
switch-size30px * $hd-
switch-font-sizevar(—switch-size)-
switch-width2em-
switch-height1em-
switch-bordervar(—border-width-base) solid rgba(0, 0, 0, 0.1)-
switch-background-colorvar(—white)-
switch-transition-durationvar(—animation-duration-base)-
switch-node-size1em-
switch-node-widthvar(—switch-node-size)-
switch-node-heightvar(—switch-node-size)-
switch-node-translate-xtranslateX(calc(var(—switch-width) - var(—switch-node-size)))-
switch-node-background-colorvar(—white)-
switch-node-box-shadow0 3px * $hd 1px * $hd 0 rgba(0, 0, 0, 0.05),
0 2px * $hd 2px * $hd 0 rgba(0, 0, 0, 0.1),
0 3px * $hd 3px * $hd 0 rgba(0, 0, 0, 0.05)
-
switch-checked-colorvar(var(—primary-color)-
switch-checked-background-colorvar(—switch-checked-color)-
switch-loading-colorvar(—switch-checked-color)-
switch-disabled-opacityvar(—disabled-opacity)-