跳到主要内容

Input 输入框

通过手动输入并验证内容,支持受控 / 非受控、字数限制、清空、多行自适应等。

基础用法​

受控输入

当前值:(空)

import { useState } from 'react'
import { LhInput } from '@lh-ui/react'

export default function Demo() {
const [value, setValue] = useState('')

return <LhInput value={value} onChange={(val) => setValue(val)} placeholder="受控输入框" />
}

特性​

清空 / 字数限制 / 密码 / 多行自适应
0/10
import { LhInput } from '@lh-ui/react'

export default function Demo() {
return (
<>
<LhInput placeholder="可清空" clearable />
<LhInput placeholder="字数限制" maxlength={10} showWordLimit />
<LhInput placeholder="密码框" type="password" />
<LhInput
placeholder="多行输入"
type="textarea"
autosize={{ minRows: 2, maxRows: 4 }}
/>
</>
)
}

Input Props​

属性说明类型可选值默认值
value受控值string——
defaultValue非受控默认值string——
type原生类型'text' | 'password' | 'number' | 'email' | 'tel' | 'url' | 'search' | 'textarea' | ...—'text'
placeholder占位符string—语言包兜底(zh-CN:请输入)
disabled禁用boolean—false
readonly只读boolean—false
maxlength最大输入长度(超过截断)number——
showWordLimit显示字数统计boolean—false
clearable可清空boolean—false
showPassword密码显隐(type 为 password 时后缀渲染眼睛按钮,React 首创)boolean—false
autosize多行自适应高度boolean | { minRows?: number; maxRows?: number }—false
label浮动标签string——
prefixIcon / suffixIcon前后缀图标LhIconName——
size尺寸'large' | 'middle' | 'small'—跟随 ConfigProvider
name原生 name 属性string——
themeVars组件级主题变量Record<string, string>——
sx快速布局属性SxProps——

Input 事件​

事件说明回调签名Vue 对照
onChange值变化(双参数)(value: string, event: ChangeEvent) => void@change
onInput原生输入事件(event: InputEvent) => void@input
onFocus获得焦点(event: FocusEvent) => void@focus
onBlur失去焦点(event: FocusEvent) => void@blur
onClear清空按钮点击(event: MouseEvent) => void@clear
onKeyDown原生键盘事件(event: KeyboardEvent) => void@keydown
onChange 的双参数

onChange(value, event) 与 lh-ui-plus 的 emit('change', [val, e]) 同构,方便迁移。详见 迁移指南。

ref​

forwardRef<HTMLInputElement | HTMLTextAreaElement> —— 可聚焦原生元素。

样式​

import '@lh-ui/react/style/input'