Switch 开关

引入

app.jsonindex.json中引入组件,详细介绍见快速上手

  1. "usingComponents": {
  2. "van-switch": "path/to/@vant/weapp/dist/switch/index"
  3. }

代码演示

基础用法

  1. <van-switch checked="{{ checked }}" bind:change="onChange" />
  1. Page({
  2. data: {
  3. checked: true
  4. },
  5. onChange({ detail }) {
  6. // 需要手动对 checked 状态进行更新
  7. this.setData({ checked: detail });
  8. }
  9. });

禁用状态

  1. <van-switch checked="{{ checked }}" disabled />

加载状态

  1. <van-switch checked="{{ checked }}" loading />

自定义大小

  1. <van-switch checked="{{ checked }}" size="24px" />

自定义颜色

  1. <van-switch
  2. checked="{{ checked }}"
  3. active-color="#07c160"
  4. inactive-color="#ee0a24"
  5. />

异步控制

  1. <van-switch
  2. checked="{{ checked }}"
  3. bind:change="onChange"
  4. />
  1. Page({
  2. data: {
  3. checked: true
  4. },
  5. onChange({ detail }) {
  6. wx.showModal({
  7. title: '提示',
  8. content: '是否切换开关?',
  9. success: res => {
  10. if (res.confirm) {
  11. this.setData({ checked2: detail });
  12. }
  13. }
  14. });
  15. }
  16. });

API

Props

参数说明类型默认值版本
name在表单内提交时的标识符string--
checked开关选中状态anyfalse-
loading是否为加载状态booleanfalse-
disabled是否为禁用状态booleanfalse-
size开关尺寸string30px-
active-color打开时的背景色string#1989fa-
inactive-color关闭时的背景色string#fff-
active-value打开时的值anytrue-
inactive-value关闭时的值anyfalse-

Events

事件名说明参数
bind:change开关状态切换回调event.detail: 是否选中开关

外部样式类

类名说明
custom-class根节点样式类
node-class圆点样式类

Switch 开关 - 图1