Компонент Textarea в Naive UI представляет собой расширяемое текстовое поле для ввода многострочного текста. Он поддерживает настройку высоты, автоматическое изменение размера, управление состояниями, валидацию и интеграцию с формами. Основные свойства компонента позволяют гибко контролировать его поведение и внешний вид.
value / v-model – двустороннее связывание данных. Позволяет получать и обновлять текущее содержимое textarea.
<n-textarea v-model="textValue" placeholder="Введите текст" />placeholder – отображаемый текст, когда поле пустое.
rows – начальное количество видимых строк. По умолчанию 2.
autosize – автоматическое изменение высоты поля
в зависимости от текста. Может быть булевым значением или объектом с
параметрами minRows и maxRows.
<n-textarea
v-model="textValue"
:autosize="{ minRows: 3, maxRows: 10 }"
/>disabled – блокирует ввод текста и изменяет стиль компонента.
readonly – делает поле доступным только для чтения без возможности редактирования.
maxlength – ограничение на количество символов. При достижении лимита ввод блокируется.
show-count – отображение счетчика символов рядом с полем.
<n-textarea
v-model="textValue"
maxlength="200"
show-count
/>status – визуальное состояние поля:
"error", "warning", "success".
Используется для отображения ошибок или подтверждения правильного
ввода.
clearable – добавляет кнопку очистки содержимого поля.
resize – управляет возможностью изменения
размера textarea пользователем. Значения: "none",
"both", "horizontal",
"vertical".
Компонент Textarea поддерживает стандартные события ввода и специфические для Naive UI:
Пример использования событий:
<n-textarea
v-model="textValue"
@on-focus="handleFocus"
@on-blur="handleBlur"
@on-clear="textValue = ''"
/>
"small", "medium", "large".Пример кастомизации:
<n-textarea
v-model="textValue"
size="large"
bordered
style="background-color: #f5f5f5; font-size: 16px;"
/>
Textarea полностью совместим с компонентом Form из Naive UI. Это позволяет:
Пример формы с textarea:
<n-form :model="formData" :rules="rules">
<n-form-item label="Комментарий" path="comment">
<n-textarea v-model="formData.comment" show-count maxlength="300" />
</n-form-item>
</n-form>
Использование autosize позволяет избежать появления
скроллбаров и делает интерфейс более удобным для ввода больших объемов
текста. Настройка minRows и maxRows
гарантирует контроль над внешним видом и предотвращает чрезмерное
разрастание поля.
Использование свойства status позволяет визуально обозначать состояние поля:
"error" – красная рамка, указывает на ошибку
ввода."warning" – желтая рамка, предупреждение."success" – зеленая рамка, подтверждение корректного
ввода.Пример динамического изменения статуса:
<n-textarea
v-model="textValue"
:status="textValue.length > 100 ? 'warning' : ''"
/>
v-model).autosize.maxlength,
show-count).disabled,
readonly).size,
bordered, style).Компонент Textarea в Naive UI обеспечивает гибкость
и удобство при работе с многострочными текстовыми полями, сочетая
функциональность стандартного HTML <textarea> с
расширенными возможностями управления и стилизации.