Перейти к основному содержимому

Поле ввода

Ручной ввод содержимого с его проверкой; поддерживаются контролируемый / неконтролируемый режимы, ограничение количества символов, очистка, многострочная авторегулировка высоты и др.

Базовое использование​

Контролируемый ввод

Текущее значение: (пусто)

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 }}
/>
</>
)
}

Props компонента Input​

ПропОписаниеТипДопустимые значенияПо умолчанию
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Нативный атрибут namestring——
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) структурно совпадает с emit('change', [val, e]) в lh-ui-plus, что упрощает миграцию. Подробнее см. в Руководстве по миграции.

ref​

forwardRef<HTMLInputElement | HTMLTextAreaElement> — нативный элемент, на который можно перевести фокус.

Стили​

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