uniapp中组件库丰富的Switch 开关选择器使用方法

目录

#平台差异说明

#基础使用

#加载中

#禁用switch

#自定义尺寸

#自定义颜色

#自定义样式

#异步控制

API

#Switch Props

#Switch Event


选择开关用于在打开和关闭状态之间进行切换。

#平台差异说明

App(vue)App(nvue)H5小程序

#基础使用

通过v-model绑定一个布尔值变量,这个变量是双向绑定的,当用户开或关选择器的时候,在父组件的该值也会相应的变为true或者false,也就是说, 您不用监听change事件,也能知道选择器当前处于或者的状态。

我们为其提供了加载中 禁用 自定义尺寸 自定义颜色 自定义样式 异步控制等六种能力,并在以下案例中为您展示

<u-switch v-model="value" @change="change"></u-switch>
<!-- methods -->
change(e) {
	console.log('change', e);
},

#加载中

设置loading属性,默认为true,可以让switch处于加载中的状态,这时switch是不可操作的,您可以通过:loading='loading'以动态设置加载状态

<u-switch v-model="value3" loading ></u-switch>
<u-switch v-model="value4" loading ></u-switch>
<!-- data -->
value3: false,
value4: true,

#禁用switch

设置disabled属性,默认为true,即可禁用某个组件,让用户无法点击,禁用分为两种状态:

  • 一是关闭情况下的禁用,这时只显示一个白色的区域。
  • 二是打开后再禁用,这时会在原有的颜色上加一个opacity透明度,但此时依然是不可操作的。
<u-switch v-model="value" disabled ></u-switch>

#自定义尺寸

设置size属性,可以让您自定义switch的尺寸,单位为px

<u-switch v-model="value3" size="28" ></u-switch>
<u-switch v-model="value4" size="20" ></u-switch>
<!-- data -->
value3: false,
value4: true,

#自定义颜色

设置activeColor属性,可以让您自定义switch的颜色,支持多种设置方式,如:activeColor="#f56c6c" activeColor="red" activeColor="rgb(0,0,0)"

<u-switch v-model="value" activeColor="#f56c6c" loading ></u-switch>
<u-switch v-model="value1" activeColor="#5ac725" loading ></u-switch>
<!-- data -->
value: true,
value1: true,

#自定义样式

同时设置activeColorinactiveColor属性,可以让您自定义switch的样式,同样支持多种设置方式

<u-switch
	space="2" v-model="value11" activeColor="#f9ae3d" 
	inactiveColor="rgb(230, 230, 230)">
</u-switch>
<u-switch
	space="2" v-model="value12" activeColor="#f9ae3d"
	inactiveColor="rgb(230, 230, 230)">
</u-switch>
<!-- data -->
value11: false,
value12: true,

#异步控制

异步控制场景,一般发生在用户打开或者关闭选择器时,需要本地或者向后端请求判断,是否允许用户打开或者关闭的场景。
同时您也可以组合使用,例如根据接口结果添加disabledloading属性等

注意

请添加asyncChange属性来支持异步控制操作,否则您将先操作v-model绑定的值,并失去控制效果

<template>
	<u-switch v-model="value13" asyncChange @change="asyncChange" ></u-switch>
</template>

<script>
	export default {
		data() {
			return {
				value13:true
			};
		},
		methods: {
			asyncChange(e) {
				uni.showModal({
					content: e ? '确定要打开吗' : '确定要关闭吗',
					success: (res) => {
						if (res.confirm) {
							this.value13 = e
						}
					}
				})
			}
		}
	};
</script>

API

#Switch Props

注意:需要给switch组件通过v-model绑定一个布尔值,来初始化switch的状态,随后该值被双向绑定, 当用打开选择器时,该值在switch组件内部被修改为true,并反映到父组件,否则为false,换言之,您无需监听switchchange事件,也能 知道某一个switch是否被选中的状态

参数说明类型默认值可选值
loading是否处于加载中Booleanfalsetrue
disabled是否禁用Booleanfalsetrue
size开关尺寸,单位rpxString | Number25-
activeColor打开时的背景色String#2979ff-
inactiveColor关闭时的背景色String#ffffff-
value通过v-model双向绑定的值Boolean | String | Numberfalse-
activeValueswitch打开时的值Boolean | String | Numbertrue-
inactiveValueswitch关闭时的值Boolean | String | Numberfalse-
asyncChange是否开启异步变更,开启后需要手动控制输入值Booleanfalsetrue
space圆点与外边框的距离String | Number0-

#Switch Event

事件名说明回调参数
changeswitch打开或关闭时触发value:打开时为activeValue值,关闭时为inactiveValue
inputswitch打开或关闭时触发(没开启异步)value:打开时为activeValue值,关闭时为inactiveValue

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TechWhiz-晓同

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值