Stepper 步进器

引入

基础用法

通过 绑定输入值,可以通过 change 事件监听到输入值的变化。

  1. <van-stepper v-model="value" />
  1. export default {
  2. data() {
  3. return {
  4. value: 1,
  5. };
  6. },
  7. };

步长设置

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

  1. <van-stepper v-model="value" step="2" />

限制输入范围

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

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

  1. <van-stepper v-model="value" integer />

禁用状态

  1. <van-stepper v-model="value" disabled />

禁用输入框

通过设置 disable-input 属性来禁用输入框,此时按钮仍然可以点击。

  1. <van-stepper v-model="value" disable-input />

固定小数位数

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

自定义大小

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

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

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

  1. <van-stepper :value="value" async-change @change="onChange" />
  1. import { Toast } from 'vant';
  2. data() {
  3. return {
  4. value: 1,
  5. };
  6. },
  7. methods: {
  8. onChange(value) {
  9. Toast.loading({ forbidClick: true });
  10. clearTimeout(this.timer);
  11. this.timer = setTimeout(() => {
  12. Toast.clear();
  13. // 注意此时修改 value 后会再次触发 change 事件
  14. this.value = value;
  15. }, 500);
  16. },
  17. },

圆角风格

Props

Events

样式变量

组件提供了下列 Less 变量,可用于自定义样式,使用方法请参考。

这是因为用户输入过程中可能出现小数点或空值,比如 1.,这种情况下组件会抛出字符串类型。

如果希望 value 保持 number 类型,可以在 v-model 上添加 number 修饰符:

  1. <van-stepper v-model.number="value" />