doc.md 3.2 KB

Switch 开关

介绍

用来打开或关闭选项。

安装

import { createApp } from 'vue';
//vue
import { Switch } from '@nutui/nutui';
//taro
import { Switch } from '@nutui/nutui-taro';

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

代码演示

基础用法

<nut-switch v-model="checked" />
import { ref } from 'vue';
export default {
  setup() {
    const checked = ref(true);
    return { checked };
  },
};

禁用状态

<nut-switch v-model="checked" disable />

加载状态

<nut-switch v-model="checked" loading color="loading" />

change事件

<nut-switch v-model="checked" @change="change" />
import { ref, getCurrentInstance } from 'vue';
export default {
  setup() {
    let { proxy } = getCurrentInstance() as any;
    const checked = ref(true);
    const change = (value: boolean, event: Event) => {
      proxy.$toast.text(`触发了change事件,开关状态:${value}`);
    };
    return {
      checked,
      change
    };
  }
};

异步控制

<nut-switch :model-value="checkedAsync" @change="changeAsync" />
import { ref, getCurrentInstance } from 'vue';
export default {
  setup() {
    let { proxy } = getCurrentInstance() as any;
    const checkedAsync = ref(true);
    const changeAsync = (value: boolean, event: Event) => {
      proxy.$toast.text(`2秒后异步触发 ${value}`);
      setTimeout(() => {
        checkedAsync.value = value;
      }, 2000);
    };
    
    return {
      checkedAsync,
      changeAsync
    };
  }
};

自定义颜色

<nut-switch v-model="checked" @change="switchChange" active-color="blue" />

支持文字

<nut-switch v-model="checked" @change="switchChange" active-text="开" inactive-text="关" />

API

Props

参数 说明 类型 默认值
v-model 开关状态 Boolean、String、Number false
disable 禁用状态 Boolean false
loading 加载状态 Boolean false
name 图标名称 String loading
color 图标颜色,仅在loading状态下生效 String -
size 图标尺寸,仅在loading状态下生效 String、Number 12px
active-color 打开时的背景颜色 String #fa2c19
inactive-color 关闭时的背景颜色 String #ebebeb
active-text 打开时文字描述 String -
inactive-text 关闭时文字描述 String -
active-value 打开时组件的值 Boolean、String、Number true
inactive-value 关闭组件的值 Boolean、String、Number false

Events

事件名 说明 回调参数
change 切换开关时触发 (value: boolean,event: Event)