Saltar al contenido principal

Campo de entrada

Entrada de contenido manual con validación; admite controlado / no controlado, límite de caracteres, borrado, multilínea de altura automática, etc.

Uso básico​

Entrada controlada

Valor actual: (vacío)

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="Campo de entrada controlado" />
}

Funcionalidades​

Borrado / límite de caracteres / contraseña / multilínea automática
0/10
import { LhInput } from '@lh-ui/react'

export default function Demo() {
return (
<>
<LhInput placeholder="Borrable" clearable />
<LhInput placeholder="Límite de caracteres" maxlength={10} showWordLimit />
<LhInput placeholder="Contraseña" type="password" />
<LhInput
placeholder="Entrada multilínea"
type="textarea"
autosize={{ minRows: 2, maxRows: 4 }}
/>
</>
)
}

Input Props​

PropDescripciónTipoValores permitidosPredeterminado
valueValor controladostring——
defaultValueValor por defecto no controladostring——
typeTipo nativo'text' | 'password' | 'number' | 'email' | 'tel' | 'url' | 'search' | 'textarea' | ...—'text'
placeholderMarcador de posiciónstring—Respaldo del paquete de idioma (zh-CN: 请输入)
disabledDesactivadoboolean—false
readonlySolo lecturaboolean—false
maxlengthLongitud máxima de entrada (se trunca al superarse)number——
showWordLimitMuestra el recuento de caracteresboolean—false
clearableBorrableboolean—false
showPasswordMostrar / ocultar contraseña (si type es password, el sufijo renderiza un botón con un ojo; novedad de React)boolean—false
autosizeAltura automática multilíneaboolean | { minRows?: number; maxRows?: number }—false
labelEtiqueta flotantestring——
prefixIcon / suffixIconIconos de prefijo / sufijoLhIconName——
sizeTamaño'large' | 'middle' | 'small'—Sigue ConfigProvider
nameAtributo name nativostring——
themeVarsVariables de tema a nivel de componenteRecord<string, string>——
sxProps rápidas de layoutSxProps——

Eventos de Input​

EventoDescripciónFirma del callbackEquivalente en Vue
onChangeCambio del valor (dos parámetros)(value: string, event: ChangeEvent) => void@change
onInputEvento de entrada nativo(event: InputEvent) => void@input
onFocusRecibe el foco(event: FocusEvent) => void@focus
onBlurPierde el foco(event: FocusEvent) => void@blur
onClearClic en el botón de borrado(event: MouseEvent) => void@clear
onKeyDownEvento de teclado nativo(event: KeyboardEvent) => void@keydown
Los dos parámetros de onChange

onChange(value, event) es isomorfo respecto al emit('change', [val, e]) de lh-ui-plus, lo que facilita la migración. Consulta la Guía de migración.

ref​

forwardRef<HTMLInputElement | HTMLTextAreaElement>: el elemento nativo enfocable.

Estilos​

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