组件库文档 tmui.design
开关 Switch
Switch 开关是用于在两种状态下选择唯一一种状态或值的组件
🌶️ 开关 Switch 示例
查看模拟效果+
示例模板
vue
<template>
<tm-app>
<tm-sheet>
<tm-text :font-size="24" _class="font-weight-b" label="基础示例,更多见文档"></tm-text>
<tm-divider></tm-divider>
<view class="flex flex-row">
<tm-switch size="mini"></tm-switch>
<tm-switch size="normal" color="red" :defaultValue="true" :margin="[12, 0]"></tm-switch>
<tm-switch size="large" color="green" :defaultValue="true" :margin="[12, 0]"></tm-switch>
</view>
</tm-sheet>
<tm-sheet>
<tm-text :font-size="24" _class="font-weight-b" label="其它样式属性"></tm-text>
<tm-divider></tm-divider>
<view class="flex flex-row">
<tm-switch linear="left" linearDeep="accent" :defaultValue="true" :margin="[12, 0]"></tm-switch>
<tm-switch unCheckedColor="red" color="red" text :label="['开','关']"></tm-switch>
<tm-switch :label="['形状','方形']" :width="200" :height="58" :round="2" color="green" :defaultValue="true" :margin="[12, 0]"></tm-switch>
</view>
</tm-sheet>
<tm-sheet>
<tm-text :font-size="24" _class="font-weight-b" label="加载和禁用"></tm-text>
<tm-divider></tm-divider>
<view class="flex flex-row">
<tm-switch load linear="left" linearDeep="accent" color="red" :defaultValue="true" :margin="[12, 0]"></tm-switch>
<tm-switch disabled linear="left" linearDeep="accent" color="green" :defaultValue="true" :margin="[12, 0]"></tm-switch>
</view>
</tm-sheet>
<tm-sheet>
<tm-text :font-size="24" _class="font-weight-b" label="异步开关"></tm-text>
<tm-divider></tm-divider>
<view class="flex flex-row">
<tm-switch :beforeChecked="beforeChecked" linear="left" linearDeep="accent" color="blue" :margin="[12, 0]"></tm-switch>
</view>
</tm-sheet>
</tm-app>
</template>
<script lang="ts" setup>
import { ref, computed } from "vue"
import { onShow, onLoad } from "@dcloudio/uni-app";
import tmApp from "@/tmui/components/tm-app/tm-app.vue"
import tmSheet from "@/tmui/components/tm-sheet/tm-sheet.vue"
import tmText from "@/tmui/components/tm-text/tm-text.vue"
import tmSwitch from "@/tmui/components/tm-switch/tm-switch.vue"
import tmDivider from "@/tmui/components/tm-divider/tm-divider.vue"
function beforeChecked(){
return new Promise(res=>{
setTimeout(function() {
res(true)
}, 1000);
})
}
</script>
🌶️ 兼容性
APP-VUE | APP-NVUE | 小程序 | WEB/H5 | VUE3/TS |
---|---|---|---|---|
✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
🌱 参数
本组件含有公共属性 公共属性
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
width | Number | 0 | 组件宽度 |
height | Number | 0 | 组件高度 |
size | String | normal | 组件大小,可取的值有:mini,normal,large |
margin | Array | [0,0] | 组件外边距 |
transprent | Boolean | false | 组件是否透明 |
modelValue / v-model | Boolean | false | 组件的值,可双向绑定 |
defaultValue | Boolean | false | 组件默认值 |
selectedv3.0.83+ | Boolean,String,Number | true | 打开时的值 |
unSelectedv3.0.83+ | Boolean,String,Number | false | 关闭时的值 |
color | String | primary | 组件激活后的颜色,即按钮开启状态的颜色 |
unCheckedColor | String | 组件未激活的颜色,即按钮关闭状态的颜色 | |
barColor | String | white | 开关上小圆球的背景色 |
round | Number | 10 | 组件的圆角值 |
load | Boolean | false | 是否显示组件加载状态,加载状态下组件圆形内按钮会变成旋转的加载图标 |
beforeChecked | Function / String / Number | false | 开关状态改变前执行的函数 |
barIcon | String | tmicon-check | 开关按钮上圆形内的图标 |
disabled | Boolean | false | 是否禁用组件 |
label | Array | ["",""] | 开关开启关闭时内部的文字,如:["开启","关闭"] |
🌹 事件
事件名 | 参数 | 返回数据 | 描述 |
---|---|---|---|
change | / | modelValue | 开关状态改变时返回当前的状态 |
click | / | / | 开关被点击后的函数 |
🌽 slot插槽
无
🥗 ref方法
无