Vant3 Switch 開關

2021-09-07 15:01 更新

介紹

用于在打開和關閉狀態(tài)之間進行切換。

實例演示

引入

通過以下方式來全局注冊組件,更多注冊方式請參考組件注冊。

import { createApp } from 'vue';
import { Switch } from 'vant';

const app = createApp();
app.use(Switch);

代碼演示

基礎用法

通過 v-model 綁定開關的選中狀態(tài),true 表示開,false 表示關。

<van-switch v-model="checked" />
import { ref } from 'vue';

export default {
  setup() {
    const checked = ref(true);
    return { checked };
  },
};

禁用狀態(tài)

通過 disabled 屬性來禁用開關,禁用狀態(tài)下開關不可點擊。

<van-switch v-model="checked" disabled />

加載狀態(tài)

通過 loading 屬性設置開關為加載狀態(tài),加載狀態(tài)下開關不可點擊。

<van-switch v-model="checked" loading />

自定義大小

通過 size 屬性自定義開關的大小。

<van-switch v-model="checked" size="24px" />

自定義顏色

active-color 屬性表示打開時的背景色,inactive-color 表示關閉時的背景色。

<van-switch v-model="checked" active-color="#ee0a24" inactive-color="#dcdee0" />

異步控制

需要異步控制開關時,可以使用 modelValue 屬性和 update:model-value 事件代替 v-model,并在事件回調(diào)函數(shù)中手動處理開關狀態(tài)。

<van-switch :model-value="checked" @update:model-value="onUpdateValue" />
import { ref } from 'vue';
import { Dialog } from 'vant';

export default {
  setup() {
    const checked = ref(true);
    const onUpdateValue = (newValue) => {
      Dialog.confirm({
        title: '提醒',
        message: '是否切換開關?',
      }).then(() => {
        checked.value = newValue;
      });
    };

    return {
      checked,
      onUpdateValue,
    };
  },
};

搭配單元格使用

<van-cell center title="標題">
  <template #right-icon>
    <van-switch v-model="checked" size="24" />
  </template>
</van-cell>

API

Props

參數(shù) 說明 類型 默認值
v-model 開關選中狀態(tài) any false
loading 是否為加載狀態(tài) boolean false
disabled 是否為禁用狀態(tài) boolean false
size 開關尺寸,默認單位為px number | string 30px
active-color 打開時的背景色 string #1989fa
inactive-color 關閉時的背景色 string white
active-value 打開時對應的值 any true
inactive-value 關閉時對應的值 any false

Events

事件名 說明 回調(diào)參數(shù)
change 開關狀態(tài)切換時觸發(fā) value: any
click 點擊時觸發(fā) event: MouseEvent

樣式變量

組件提供了下列 CSS 變量,可用于自定義樣式,使用方法請參考  ConfigProvider 組件

名稱 默認值 描述
--van-switch-size 30px -
--van-switch-width 2em -
--van-switch-height 1em -
--van-switch-node-size 1em -
--van-switch-node-background-color var(--van-white) -
--van-switch-node-box-shadow 0 3px 1px 0 rgba(0, 0, 0, 0.05) -
--van-switch-background-color var(--van-white) -
--van-switch-on-background-color var(--van-primary-color) -
--van-switch-transition-duration var(--van-animation-duration-base) -
--van-switch-disabled-opacity var(--van-disabled-opacity) -
--van-switch-border var(--van-border-width-base) solid rgba(0, 0, 0, 0.1) -


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號