InputNumber 数値入力
LhInputNumber は数値を入力するために使用します。範囲制限、ステップ、精度の制御に対応しています。
基本的な使い方
基本的な使い方
vue
<script setup lang="ts">
import { ref } from 'vue'
import { LhInputNumber } from '@lh-ui/vue3'
const count = ref(0)
</script>
<template>
<LhInputNumber v-model="count" />
</template>vue
<script>
import { LhInputNumber } from '@lh-ui/vue3'
export default {
components: { LhInputNumber },
data() {
return {
count: 0
}
}
}
</script>
<template>
<LhInputNumber v-model="count" />
</template>範囲制限
範囲制限
vue
<script setup lang="ts">
import { ref } from 'vue'
import { LhInputNumber } from '@lh-ui/vue3'
const level = ref(5)
</script>
<template>
<LhInputNumber v-model="level" :min="1" :max="10" />
</template>vue
<script>
import { LhInputNumber } from '@lh-ui/vue3'
export default {
components: { LhInputNumber },
data() {
return {
level: 5
}
}
}
</script>
<template>
<LhInputNumber v-model="level" :min="1" :max="10" />
</template>カスタムテーマ
青花瓷(せいがじ)テーマカラーを適用します。
青花瓷(青白磁)テーマ
vue
<script setup lang="ts">
import { ref } from 'vue'
import { LhConfigProvider, LhInputNumber } from '@lh-ui/vue3'
const count = ref(0)
const cerblueTheme = {
'primary-color': '#2B4C7C',
'primary-color-hover': '#3D649E',
'primary-color-bg': '#E8EDF3',
}
</script>
<template>
<LhConfigProvider :theme-vars="cerblueTheme">
<LhInputNumber v-model="count" />
</LhConfigProvider>
</template>vue
<script>
import { LhConfigProvider, LhInputNumber } from '@lh-ui/vue3'
export default {
data() {
return {
count: 0,
cerblueTheme: {
'primary-color': '#2B4C7C',
'primary-color-hover': '#3D649E',
'primary-color-bg': '#E8EDF3',
},
}
},
}
</script>
<template>
<LhConfigProvider :theme-vars="cerblueTheme">
<LhInputNumber v-model="count" />
</LhConfigProvider>
</template>国際化
国際化
vue
<script setup lang="ts">
import { ref } from 'vue'
import { LhConfigProvider, LhInputNumber } from '@lh-ui/vue3'
import { zhCN } from '@lh-ui/vue3'
import { enUS } from '@lh-ui/vue3'
const locale = ref('zh-CN')
const count = ref(0)
</script>
<template>
<!-- 言語パックの設定 -->
<LhConfigProvider :locale="locale === 'zh-CN' ? zhCN : enUS">
<!-- プレースホルダーテキストが言語に連動する -->
<LhInputNumber v-model="count" :placeholder="locale === 'zh-CN' ? '请输入数字' : 'Enter number'" />
</LhConfigProvider>
</template>vue
<script>
import { LhConfigProvider, LhInputNumber } from '@lh-ui/vue3'
import { zhCN } from '@lh-ui/vue3'
import { enUS } from '@lh-ui/vue3'
export default {
data() {
return {
locale: 'zh-CN',
count: 0,
zhCN: zhCN,
enUS: enUS,
}
},
}
</script>
<template>
<!-- 言語パックの設定 -->
<LhConfigProvider :locale="locale === 'zh-CN' ? zhCN : enUS">
<!-- プレースホルダーテキストが言語に連動する -->
<LhInputNumber v-model="count" :placeholder="locale === 'zh-CN' ? '请输入数字' : 'Enter number'" />
</LhConfigProvider>
</template>ステップと精度
ステップと精度
vue
<script setup lang="ts">
import { ref } from 'vue'
const value = ref<number | null>(1)
</script>
<template>
<LhInputNumber v-model="value" :step="2" />
<LhInputNumber v-model="value" :precision="2" placeholder="小数点以下 2 桁" />
<LhInputNumber v-model="value" :step="10" step-strictly placeholder="10 の倍数のみ" />
</template>vue
<script>
export default {
data() {
return { value: 1 }
},
}
</script>
<template>
<LhInputNumber v-model="value" :step="2" />
<LhInputNumber v-model="value" :precision="2" placeholder="小数点以下 2 桁" />
<LhInputNumber v-model="value" :step="10" step-strictly placeholder="10 の倍数のみ" />
</template>サイズとコントロールボタン
サイズとコントロールボタン
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="コントロールボタンなし" />
</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="コントロールボタンなし" />
</template>無効化とフォーム名
無効化とフォーム名
vue
<script setup lang="ts">
import { ref } from 'vue'
const value = ref<number | null>(1)
</script>
<template>
<LhInputNumber v-model="value" disabled />
<LhInputNumber v-model="value" name="quantity" placeholder="name=quantity" />
</template>vue
<script>
export default {
data() {
return { value: 1 }
},
}
</script>
<template>
<LhInputNumber v-model="value" disabled />
<LhInputNumber v-model="value" name="quantity" placeholder="name=quantity" />
</template>InputNumber API
Props
| プロパティ名 | 説明 | 型 | デフォルト値 |
|---|---|---|---|
| modelValue | 現在の値 | number | null |
| min | 最小値 | number | -Infinity |
| max | 最大値 | number | Infinity |
| step | ステップ | number | 1 |
| stepStrictly | 入力値を step の倍数にするか | boolean | false |
| precision | 数値の精度 | number | — |
| disabled | 無効化するか | boolean | false |
| size | サイズ | "small" | "medium" | "large" | "mini" | "x-large" | 'medium' |
| controls | コントロールボタンを表示するか | boolean | true |
| placeholder | プレースホルダーテキスト | string | '' |
| name | ネイティブフォーム名 | string | '' |
| sx | クイックレイアウトプロパティ({ mt: 2, w: '50%' } など)。インラインスタイルに変換されてルート要素に適用される | LhSxProps | — |
Events
| イベント名 | 説明 | パラメータ |
|---|---|---|
| update:modelValue | 値が変化した | value: number |
| change | 値の変更が確定した | value: number |
キーボードの上下矢印キーで値を増減できます。
型定義
本コンポーネントが外部にエクスポートする TypeScript 型構造は以下のとおりです(packages/components/input-number/src/types.ts および @lh-ui/share/core/* ソースから自動抽出。各エントリをクリックすると完全な定義を確認できます。プロパティの説明は上記の Props 表を参照してください):
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 クイックレイアウトプロパティ */
sx?: LhSxProps
}LhInputNumberSize
ts
export type LhInputNumberSize = LhComponentSizeLhComponentSize (@lh-ui/share/core/shared から)
ts
export type LhComponentSize = (typeof LH_SIZE_CONST)[keyof typeof LH_SIZE_CONST]