Stepper 步进器

介绍

步进器由增加按钮、减少按钮和输入框组成,用于在一定范围内输入、调整数字。

引入

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

  1. "usingComponents": {
  2. "van-stepper": "@vant/weapp/stepper/index"
  3. }

代码演示

基础用法

通过value设置输入值,可以通过change事件监听到输入值的变化。

  1. <van-stepper value="{{ 1 }}" bind:change="onChange" />
  1. Page({
  2. onChange(event) {
  3. console.log(event.detail);
  4. },
  5. });

步长设置

通过step属性设置每次点击增加或减少按钮时变化的值,默认为1

  1. <van-stepper value="{{ 1 }}" step="2" />

限制输入范围

通过minmax属性限制输入值的范围。

  1. <van-stepper value="{{ 5 }}" min="5" max="8" />

限制输入整数

设置integer属性后,输入框将限制只能输入整数。

  1. <van-stepper value="{{ 1 }}" integer />

禁用状态

通过设置disabled属性来禁用步进器,禁用状态下无法点击按钮或修改输入框。

  1. <van-stepper value="{{ 1 }}" disabled />

关闭长按

通过设置long-press属性决定步进器是否开启长按手势。

  1. <van-stepper value="{{ 1 }}" long-press="{{ false }}" />

固定小数位数

通过设置decimal-length属性可以保留固定的小数位数。

  1. <van-stepper value="{{ 1 }}" step="0.2" decimal-length="{{ 1 }}" />

异步变更

如果需要异步地修改输入框的值,可以设置async-change属性,并在change事件中手动修改value

  1. <van-stepper value="{{ value }}" async-change bind:change="onChange" />
  1. Page({
  2. data: {
  3. value: 1,
  4. },
  5. onChange(value) {
  6. Toast.loading({ forbidClick: true });
  7. setTimeout(() => {
  8. Toast.clear();
  9. this.setData({ value });
  10. }, 500);
  11. },
  12. });

自定义大小

通过input-width属性设置输入框宽度,通过button-size属性设置按钮大小和输入框高度。

  1. <van-stepper value="{{ 1 }}" input-width="40px" button-size="32px" />

API

Props

参数说明类型默认值
name在表单内提交时的标识符string-
value输入值string | number最小值
min最小值string | number1
max最大值string | number-
step步长string | number1
integer是否只允许输入整数booleanfalse
disabled是否禁用booleanfalse
disable-input是否禁用输入框booleanfalse
async-change是否开启异步变更,开启后需要手动控制输入值booleanfalse
input-width输入框宽度,默认单位为 pxstring | number32px
button-size按钮大小,默认单位为 px,输入框高度会和按钮大小保持一致string | number28px
show-plus是否显示增加按钮booleantrue
show-minus是否显示减少按钮booleantrue
decimal-length固定显示的小数位数number-
theme样式风格,可选值为 roundstring-
disable-plus是否禁用增加按钮boolean-
disable-minus是否禁用减少按钮boolean-
long-press是否开启长按手势booleantrue
always-embed v1.9.3强制 input 处于同层状态,默认 focus 时 input 会切到非同层状态 (仅在 iOS 下生效)booleanfalse

Events

事件名说明回调参数
bind:change当绑定值变化时触发的事件event.detail: 当前输入的值
bind:overlimit点击不可用的按钮时触发-
bind:plus点击增加按钮时触发-
bind:minus点击减少按钮时触发-
bind:focus输入框聚焦时触发-
bind:blur输入框失焦时触发-

Slot

名称说明
plus加号按钮
minus减号按钮

外部样式类

类名说明
custom-class根节点样式类
input-class输入框样式类
plus-class加号按钮样式类
minus-class减号按钮样式类

Stepper 步进器 - 图1