Skip to content
API 风格:

InputNumber ​

LhInputNumber creates an input field for numeric values with increment/decrement controls.

Basic Usage ​

Basic Usage
vue
<script setup lang="ts">
import { ref } from 'vue'
import { LhInputNumber } from '@lh-ui/vue3'

const value = ref(1)
</script>

<template>
  <LhInputNumber v-model="value" />
</template>
vue
<script>
import { LhInputNumber } from '@lh-ui/vue3'

export default {
  components: { LhInputNumber },
  data() {
    return {
      value: 1,
    }
  },
}
</script>

<template>
  <LhInputNumber v-model="value" />
</template>

Step & Bounds ​

Step & Bounds
vue
<script setup lang="ts">
import { ref } from 'vue'
import { LhInputNumber } from '@lh-ui/vue3'

const stepped = ref(0)
</script>

<template>
  <LhInputNumber v-model="stepped" :min="0" :max="10" :step="2" />
</template>
vue
<script>
import { LhInputNumber } from '@lh-ui/vue3'

export default {
  components: { LhInputNumber },
  data() {
    return {
      stepped: 0,
    }
  },
}
</script>

<template>
  <LhInputNumber v-model="stepped" :min="0" :max="10" :step="2" />
</template>

Disabled ​

Disabled
vue
<script setup lang="ts">
import { ref } from 'vue'
import { LhInputNumber } from '@lh-ui/vue3'

const disabled = ref(1)
</script>

<template>
  <LhInputNumber v-model="disabled" disabled />
</template>
vue
<script>
import { LhInputNumber } from '@lh-ui/vue3'

export default {
  components: { LhInputNumber },
  data() {
    return {
      disabled: 1,
    }
  },
}
</script>

<template>
  <LhInputNumber v-model="disabled" disabled />
</template>

Type Definitions ​

The TypeScript type structures exported by this component (auto-extracted from packages/components/input-number/src/types.ts and @lh-ui/share/core/* sources; click each entry to expand; see the Props table above for attribute descriptions):

LhInputNumberProps
ts
export interface LhInputNumberProps {
  modelValue?: number | null
  min?: number
  max?: number
  step?: number
  stepStrictly?: boolean
  precision?: number
  disabled?: boolean
  size?: LhComponentSize
  controls?: boolean
  placeholder?: string
  name?: string
  sx?: LhSxProps
}
LhInputNumberSize
ts
export type LhInputNumberSize = LhComponentSize
LhComponentSize (from @lh-ui/share/core/shared)
ts
export type LhComponentSize = (typeof LH_SIZE_CONST)[keyof typeof LH_SIZE_CONST]

Precision & Strict Step ​

Precision & Strict Step
vue
<script setup lang="ts">
import { ref } from 'vue'

const value = ref<number | null>(1)
</script>

<template>
  <LhInputNumber v-model="value" :precision="2" placeholder="2 decimal places" />
  <LhInputNumber v-model="value" :step="10" step-strictly placeholder="Multiples of 10" />
</template>
vue
<script>
export default {
  data() {
    return { value: 1 }
  },
}
</script>

<template>
  <LhInputNumber v-model="value" :precision="2" placeholder="2 decimal places" />
  <LhInputNumber v-model="value" :step="10" step-strictly placeholder="Multiples of 10" />
</template>

Size & Controls ​

Size & Controls
vue
<script setup lang="ts">
import { ref } from 'vue'

const value = ref<number | null>(1)
</script>

<template>
  <LhInputNumber v-model="value" size="small" />
  <LhInputNumber v-model="value" size="medium" />
  <LhInputNumber v-model="value" size="large" />
  <LhInputNumber v-model="value" :controls="false" placeholder="No controls" />
</template>
vue
<script>
export default {
  data() {
    return { value: 1 }
  },
}
</script>

<template>
  <LhInputNumber v-model="value" size="small" />
  <LhInputNumber v-model="value" size="medium" />
  <LhInputNumber v-model="value" size="large" />
  <LhInputNumber v-model="value" :controls="false" placeholder="No controls" />
</template>

Placeholder & Name ​

Placeholder & Name
vue
<script setup lang="ts">
import { ref } from 'vue'

const value = ref<number | null>(1)
</script>

<template>
  <LhInputNumber v-model="value" placeholder="Please enter a number" />
  <LhInputNumber v-model="value" name="quantity" placeholder="name=quantity" />
</template>
vue
<script>
export default {
  data() {
    return { value: 1 }
  },
}
</script>

<template>
  <LhInputNumber v-model="value" placeholder="Please enter a number" />
  <LhInputNumber v-model="value" name="quantity" placeholder="name=quantity" />
</template>

Props ​

PropDescriptionTypeDefault
modelValueBound valuenumbernull
minMinimum valuenumber-Infinity
maxMaximum valuenumberInfinity
stepStep sizenumber1
stepStrictly—booleanfalse
precisionDecimal precisionnumber—
disabledDisabledbooleanfalse
sizeSize"small" | "medium" | "large" | "mini" | "x-large"'medium'
controlsShow controlsbooleantrue
placeholder—string''
name—string''
sxsx quick-layout propsLhSxProps—

Events ​

EventDescriptionCallback
update:modelValueValue change(value: number) => void
changeValue changed(value: number) => void

Beauty of tradition, foundation of code