Switch开关
引入
在app.json或index.json中引入组件,默认为ES6版本
"usingComponents": {
"vtu-switch": "/miniprogram_npm/vtuweapp/switch/vtu-switch"
}
代码演示
基础用法
<vtu-switch checked="{{value}}"></vtu-switch>
<vtu-switch checked="{{value}}" size="small" active-color="red"></vtu-switch>
<vtu-switch checked="{{value}}" type="round" active-color="orange"></vtu-switch>
<vtu-switch checked="{{value}}" type="round" size="small" color="#9596A4" active-color="orange"></vtu-switch>
Page({
data: {
value: true
}
});
其他样式
<vtu-switch checked="{{value}}" type="circle" simple active-color="orange"></vtu-switch>
<vtu-switch checked="{{value}}" type="circle" simple size="small" active-color="orange"></vtu-switch>
<vtu-switch checked="{{value}}" type="round" simple color="#9596A4" active-color="skyblue"></vtu-switch>
<vtu-switch checked="{{value}}" type="round" simple size="small" active-color="skyblue"></vtu-switch>
Page({
data: {
value: true
}
});
禁用样式
<vtu-switch checked="{{false}}" type="circle" bind:change="bindChange" active-color="red" disabled></vtu-switch>
<vtu-switch checked="{{true}}" type="round" bind:change="bindChange" active-color="red" disabled></vtu-switch>
<vtu-switch checked="{{false}}" type="circle" simple bind:change="bindChange" active-color="red" disabled></vtu-switch>
异步
<vtu-switch checked="{{value}}" async type="circle" bind:change="bindAsyncChange" active-color="orange"></vtu-switch>
<vtu-switch checked="{{value}}" async type="round" bind:change="bindAsyncChange" active-color="orange"></vtu-switch>
<vtu-switch checked="{{value}}" async type="round" simple bind:change="bindAsyncChange" active-color="orange"></vtu-switch>
Page({
data: {
value: true
},
bindAsyncChange(e) {
let self = this
setTimeout(function() {
self.setData({
value: e.detail.value
})
}, 2000)
}
});
自定义图标
<vtu-switch checked="{{value}}" async type="circle" color="#9596A4" icon="iconfont icon-xingbie" active-icon="iconfont icon-xingbienvxianxing"></vtu-switch>
<vtu-switch checked="{{value}}" type="circle" color="#9596A4" icon="iconfont icon-guanbi1" active-icon="iconfont icon-xuanze1"></vtu-switch>
Page({
data: {
value: true
}
});
自定义文字
<vtu-switch checked="{{value}}" async type="circle" color="#9596A4" label="男" active-label="女"></vtu-switch>
Page({
data: {
value: true
}
});
组件参数
Props
参数 | 说明 | 类型 | 默认值 | 必填 |
---|
checked | 绑定值 | Boolean | false | 否 |
type | 开关形状,circle 圆形,round 圆角 | String | circle | 否 |
color | 关闭时背景色 | String | #dcdfe6 | 否 |
active-color | 打开时背景色 | String | #1989fa | 否 |
size | 尺寸,small default | String | default | 否 |
async | 是否开启异步处理 | Boolean | false | 否 |
loading | 是否显示加载图标 | Boolean | false | 否 |
icon | 关闭时的图标 | String | - | 否 |
active-icon | 打开时的图标 | String | - | 否 |
label | 关闭时的文字 | String | - | 否 |
active-label | 打开时的文字 | String | - | 否 |
simple | 简约样式 | Boolean | false | 否 |
Events
参数 | 说明 | 参数 | 返回值 |
---|
bind:change | switch 状态发生变化时的回调函数 | - | 新状态的值 |
外部样式类
外部样式类名 | 说明 |
---|
v-class | 组件外部样式类 |