--- name: arco-vue-switch description: "Arco Design Vue 开关 Switch 组件参考。用于 Vue 3、`@arco-design/web-vue`、``、属性、事件、插槽、示例和实现细节。" user-invocable: false --- # 开关 Switch ## 简介 开关的基本用法。 ## 基本用法 ```vue ``` ## API ### `` 属性 |参数名|描述|类型|默认值|版本| |---|---|---|:---:|:---| |model-value **(v-model)**|绑定值|`string\|number\|boolean`|`-`|| |default-checked|默认选中状态(非受控状态)|`boolean`|`false`|| |disabled|是否禁用|`boolean`|`false`|| |loading|是否为加载中状态|`boolean`|`false`|| |type|开关的类型|`'circle' \| 'round' \| 'line'`|`'circle'`|| |size|开关的大小|`'small' \| 'medium'`|`'medium'`|| |checked-value|选中时的值|`string\|number\|boolean`|`true`|2.12.0| |unchecked-value|未选中时的值|`string\|number\|boolean`|`false`|2.12.0| |checked-color|选中时的开关颜色|`string`|`-`|2.12.0| |unchecked-color|未选中时的开关颜色|`string`|`-`|2.12.0| |before-change|switch 状态改变前的钩子, 返回 false 或者返回 Promise 且被 reject 则停止切换。|`( newValue: string \| number \| boolean) => Promise \| boolean \| void`|`-`|2.37.0| |checked-text|打开状态时的文案(`type='line'`和`size='small'`时不生效)|`string`|`-`|2.45.0| > 仅列出常用项,低频属性按需查阅官方 API。 ### `` 事件 |事件名|描述|参数| |---|---|---| |change|值改变时触发|value: ` boolean \| string \| number `
ev: `Event`| |focus|组件获得焦点时触发|ev: `FocusEvent`| |blur|组件失去焦点时触发|ev: `FocusEvent`| ### `` 插槽 |插槽名|描述|参数| |---|:---:|---| |checked-icon|打开状态时,按钮上的图标|-| |unchecked-icon|关闭状态时,按钮上的图标|-| |checked|打开状态时的文案(`type='line'`和`size='small'`时不生效)|-| |unchecked|关闭状态时的文案(`type='line'`和`size='small'`时不生效)|-| ## 常用模式 - **开关类型**:开关分为 `circle` - **圆形(默认)**、`round` - **圆角**、`line` - **线性**三种类型。 - **开关尺寸**:开关分为 `small`、`medium` 两种尺寸。 - **禁用状态**:禁用开关。 - **自定义开关的颜色**:通过 `checked-color` 和 `unchecked-color` 可以自定义开关的颜色。 - **自定义开关的值**:通过 `checked-value` 和 `unchecked-value` 可以自定义开关的值。 - **切换拦截**:设置 `beforeChange` 函数,函数的返回值将用于判断是否阻止切换。 - **加载中状态**:通过设置 `loading` 使开关处于加载中状态,此时开关不可点击。 - **自定义文案**:自定义开关的打开/关闭状态的文字。 ## 最佳实践 - 新代码优先使用 Vue 3、Composition API 和 `