Skip to content

Поле ввода ​

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

vue
<template>
  <lh-input v-model="text" placeholder="Введите текст" />
  <lh-input v-model="text" type="textarea" :rows="3" autosize placeholder="Несколько строк" />
  <lh-input v-model="text" type="password" placeholder="Пароль" />
</template>

<script setup lang="ts">
import { ref } from 'vue'
const text = ref('')
</script>

Стиль плейсхолдера (обязательно на MP) ​

Mini Program не поддерживает ::placeholder

WXSS WeChat Mini Program не поддерживает псевдоэлемент ::placeholder. Стиль плейсхолдера задавайте через props, не пишите ::placeholder в CSS (этот гейт перехватит и на этапе сборки).

vue
<lh-input placeholder="Введите текст" placeholder-style="color: #999; font-size: 13px" />
<!-- или через класс -->
<lh-input placeholder="Введите текст" placeholder-class="my-placeholder" />

С иконками и состояниями ​

vue
<template>
  <lh-input v-model="text" prefix-icon="search" placeholder="Поиск" clearable />
  <lh-input v-model="text" suffix-icon="close" placeholder="Суффиксная иконка" />
  <lh-input v-model="text" state="error" placeholder="Состояние ошибки валидации" />
  <lh-input v-model="text" :maxlength="20" show-word-limit placeholder="Подсчёт символов" />
</template>

Props ​

ПропОписаниеТипПо умолчанию
modelValue (v-model)Привязанное значениеstring—
typeТип'text' | 'textarea' | 'password' | 'number' | 'email' | 'url' | 'tel' | 'date' | 'time''text'
sizeРазмер'small' | 'medium' | 'large'—
disabledОтключеноbooleanfalse
readonlyТолько чтениеbooleanfalse
placeholderТекст плейсхолдераstring—
placeholderStyleИнлайновый стиль плейсхолдера (заменяет ::placeholder)string—
placeholderClassКласс плейсхолдера (взаимоисключающий с placeholderStyle)string—
maxlengthМаксимальная длинаnumber—
minlengthМинимальная длинаnumber—
showWordLimitПоказывать подсчёт символовbooleanfalse
clearableМожно очиститьbooleanfalse
prefixIconИконка-префиксLhIconName—
suffixIconИконка-суффиксLhIconName—
stateСостояние валидации'error' | 'success' | 'warning'—
nameНативное name (для сбора формой)string—
passwordРежим пароляbooleanfalse
rowsКоличество строк textareanumber—
autosizeАвторазмер высоты textarea (auto-height в MP)booleanfalse
labelТекст меткиstring—
customClassПользовательский классstring—
themeVarsПеременные темы компонентаRecord<string, string>—
sxБыстрые свойства раскладкиLhSxProps—

Events ​

СобытиеОписаниеПараметр колбэка
update:modelValueИзменение значения(value: string)
inputВвод (берётся event.detail.value)(value: string)
blurПотеря фокуса—
focusПолучение фокуса—
clearОчистка—

Отличия от версии для Vue3

autocomplete / autofocus / resize / form / tabindex / nativeType / inputStyle не имеют аналогов в Mini Program и в библиотеке не реализуются. autosize работает через свойство auto-height штатного textarea Mini Program.