vant/docs/examples-docs/switch.md
2017-04-19 17:44:57 +08:00

4.2 KiB
Raw Blame History

Switch 开关

使用指南

如果你已经按照快速上手中引入了整个vant,以下组件注册就可以忽略了,因为你已经全局注册了vant中的全部组件。

全局注册

你可以在全局注册Switch组件,比如页面的主文件(index.jsmain.js),这样页面任何地方都可以直接使用Switch组件了:

import Vue from 'vue';
import { Switch } from 'vant';
import 'vant/lib/vant-css/switch.css';

Vue.component(Switch.name, Switch);

局部注册

如果你只是想在某个组件中使用,你可以在对应组件中注册Switch组件,这样只能在你注册的组件中使用Switch

import { Switch } from 'vant';

export default {
  components: {
    'van-switch': Switch
  }
};

代码演示

基础用法

:::demo 基础用法

<van-switch class="some-customized-class" v-model="switchState1"></van-switch>
<div class="demo-switch__text">{{ switchState1 ? ' ON' : 'OFF' }}</div>


<script>
export default {
  data() {
    return {
      switchState1: true
    };
  }
};  
</script>

:::

:::demo

<van-switch class="some-customized-class" v-model="switchState2" :on-change="updateState"></van-switch>
<div class="demo-switch__text">{{ switchState2 ? ' ON' : 'OFF' }}</div>


<script>
import Dialog from 'packages/dialog';

export default {
  data() {
    return {
      switchState2: true
    };
  },
  methods: {
    updateState(newState) {
      const state = newState ? '打开' : '关闭';
      Dialog.confirm({
        title: '提醒',
        message: '是否' + state + '开关?'
      }).then((action) => {
        this.switchState2 = newState;
      }, (error) => {
      });
    }
  }
};  
</script>

:::

禁用状态

设置disabled属性为true,此时开关不可点击。

:::demo 禁用状态

<van-switch class="some-customized-class" v-model="switchStateTrue" :disabled="true"></van-switch>
<div class="demo-switch__text">ON, DISABLED</div>

<van-switch class="some-customized-class" v-model="switchStateFalse" :disabled="true"></van-switch>
<div class="demo-switch__text">OFF, DISABLED</div>

<script>
export default {
  data() {
    return {
      switchStateTrue: true,
      switchStateFalse: false
    };
  }
};  
</script>

:::

loading状态

设置loading属性为true此时开关为加载状态一般用于点击开关时正在向后端发送请求此时正在loading请求成功后结束loading。

:::demo loading状态

<van-switch class="some-customized-class" v-model="switchStateTrue" :loading="true"></van-switch>
<div class="demo-switch__text">ON, LOADING</div>

<van-switch class="some-customized-class" v-model="switchStateFalse" :loading="true"></van-switch>
<div class="demo-switch__text">OFF, LOADING</div>

<script>
export default {
  data() {
    return {
      switchStateTrue: true,
      switchStateFalse: false
    };
  }
};  
</script>

:::

API

参数 说明 类型 默认值 可选值
v-model 开关状态 boolean false true, false
loading loading状态 boolean false true, false
disabled 禁用状态 boolean false true, false
onChange 开关状态切换回调(默认则改变开关状态) function - -