Компонент <el-input> предназначен
для ввода текста пользователем. Он поддерживает различные типы данных,
стили, состояния и события, что делает его универсальным элементом для
форм и интерфейсов.
Простейший пример использования:
<template>
<el-input v-model="text" placeholder="Введите текст"></el-input>
</template>
<script>
export default {
data() {
return {
text: ''
};
}
};
</script>
Ключевые свойства:
v-model – двусторонняя привязка
значения.placeholder – текст подсказки внутри
поля.type – определяет тип ввода:
text, password, textarea,
number и др.disabled – делает поле недоступным для
редактирования.clearable – добавляет иконку для
очистки поля.show-password – для полей с типом
password позволяет показывать/скрывать введённый
текст.maxlength – максимальная длина
текста.prefix-icon и suffix-icon
– иконки перед и после ввода.Используется для ввода простого текста:
<el-input v-model="username" placeholder="Имя пользователя"></el-input>
<el-input
v-model="password"
type="password"
placeholder="Пароль"
show-password
></el-input>
Позволяет ограничивать ввод чисел и использовать стрелки для изменения значения:
<el-input
v-model.number="age"
type="number"
:min="0"
:max="120"
placeholder="Возраст"
></el-input>
Для многострочного текста:
<el-input
type="textarea"
v-model="description"
:rows="4"
placeholder="Введите описание"
></el-input>
rows – количество видимых строк.autosize – автоматически подстраивает
высоту под текст; можно передать объект
{ minRows, maxRows }.<el-input
type="textarea"
v-model="comment"
:autosize="{ minRows: 2, maxRows: 6 }"
placeholder="Комментарий"
></el-input>
<el-input v-model="text" placeholder="Неактивное поле" disabled></el-input>
<el-input v-model="text" placeholder="Только для чтения" readonly></el-input>
disabled – блокирует полностью поле и
делает его серым.readonly – позволяет скопировать
текст, но редактирование запрещено.Позволяет пользователю очистить поле одним кликом:
<el-input
v-model="search"
placeholder="Поиск"
clearable
></el-input>
Можно добавить иконки для визуального улучшения интерфейса:
<el-input
v-model="email"
placeholder="Email"
prefix-icon="el-icon-message"
suffix-icon="el-icon-check"
></el-input>
prefix-icon – иконка слева.suffix-icon – иконка справа.Input поддерживает множество событий:
input – срабатывает при каждом
изменении значения.change – срабатывает при потере фокуса
после изменения.focus / blur –
фокусировка и потеря фокуса.clear – срабатывает при очистке поля
через clearable.Пример использования:
<el-input
v-model="text"
placeholder="Введите текст"
@input="onInput"
@change="onChange"
@focus="onFocus"
@blur="onBlur"
clearable
@clear="onClear"
></el-input>
<script>
export default {
data() {
return {
text: ''
};
},
methods: {
onInput(value) {
console.log('Input:', value);
},
onChange(value) {
console.log('Change:', value);
},
onFocus() {
console.log('Focus');
},
onBlur() {
console.log('Blur');
},
onClear() {
console.log('Cleared');
}
}
};
</script>
Input поддерживает слоты для кастомизации:
prepend – контент перед полем.append – контент после поля.<el-input v-model="price" placeholder="Цена">
<template #prepend>$</template>
<template #append>.00</template>
</el-input>
Использование модификаторов и фильтров:
<el-input
v-model.number="amount"
placeholder="Сумма"
></el-input>
.number автоматически конвертирует ввод в
число.formatter и parser
при интеграции с внешними библиотеками.Input может работать с автозаполнением:
<el-input
v-model="keyword"
placeholder="Поиск пользователей"
@input="fetchSuggestions"
clearable
></el-input>
Метод fetchSuggestions может динамически подгружать
данные, создавая функционал автокомплита без отдельного компонента.
Эта структура <el-input>
покрывает основные потребности: текст, пароль, числа, textarea,
кастомизация через слоты и события, а также управление состояниями и
валидацией. Она легко комбинируется с формами, кнопками и другими
компонентами Element Plus для создания полноценных интерфейсов.