# Switch 开关 ### 介绍 用来打开或关闭选项。 ### 安装 ``` javascript import { createApp } from 'vue'; //vue import { Switch } from '@nutui/nutui'; //taro import { Switch } from '@nutui/nutui-taro'; const app = createApp(); app.use(Switch); ``` ## 代码演示 ### 基础用法 ``` html ``` ``` javascript import { ref } from 'vue'; export default { setup() { const checked = ref(true); return { checked }; }, }; ``` ### 禁用状态 ``` html ``` ### 加载状态 ``` html ``` ### change事件 ``` html ``` ``` javascript import { ref, getCurrentInstance } from 'vue'; export default { setup() { let { proxy } = getCurrentInstance() as any; const checked = ref(true); const change = (value: boolean, event: Event) => { proxy.$toast.text(`触发了change事件,开关状态:${value}`); }; return { checked, change }; } }; ``` ### 异步控制 ``` html ``` ``` javascript import { ref, getCurrentInstance } from 'vue'; export default { setup() { let { proxy } = getCurrentInstance() as any; const checkedAsync = ref(true); const changeAsync = (value: boolean, event: Event) => { proxy.$toast.text(`2秒后异步触发 ${value}`); setTimeout(() => { checkedAsync.value = value; }, 2000); }; return { checkedAsync, changeAsync }; } }; ``` ### 自定义颜色 ``` html ``` ### 支持文字 ``` html ``` ## API ### Props | 参数 | 说明 | 类型 | 默认值 | |----------------|------------------|---------|-----------------------| | v-model | 开关状态 | Boolean、String、Number | `false` | | disable | 禁用状态 | Boolean | `false` | | loading | 加载状态 | Boolean | `false` | | name | [图标名称](#/icon) | String | `loading` | | color | [图标颜色](#/icon),仅在`loading`状态下生效 | String | - | | size | [图标尺寸](#/icon),仅在`loading`状态下生效 | String、Number | `12px` | | active-color | 打开时的背景颜色 | String | `#fa2c19` | | inactive-color | 关闭时的背景颜色 | String | `#ebebeb` | | active-text | 打开时文字描述 | String | - | | inactive-text | 关闭时文字描述 | String | - | | active-value | 打开时组件的值 | Boolean、String、Number | `true` | | inactive-value | 关闭组件的值 | Boolean、String、Number | `false` | ### Events | 事件名 | 说明 | 回调参数 | |--------|----------------|-------------------------------| | change | 切换开关时触发 | (value: boolean,event: Event) |