Skip to content

Textarea 文本域

用于输入多行文本。

基础用法

通过鼠标或键盘输入内容。

vue
<template>
  <x-textarea v-model="value" placeholder="请输入内容" />
</template>

<script setup>
import { ref } from 'vue'
const value = ref('')
</script>

禁用状态

vue
<template>
  <x-textarea v-model="value" disabled placeholder="禁用状态" />
</template>

控制行数

通过 rows 属性控制默认显示的行数。

vue
<template>
  <x-textarea v-model="value" :rows="4" placeholder="显示4行" />
</template>

限制字符数量

通过 maxlength 属性限制最大输入字符数,show-word-limit 显示字数统计。

0/100
vue
<template>
  <x-textarea
    v-model="value"
    :maxlength="100"
    show-word-limit
    placeholder="最多输入100个字符"
  />
</template>

自适应高度

通过设置 autosize 属性使文本域高度自适应。

自适应高度(无限制):

自适应高度(限制最小2行,最大4行):

vue
<template>
  <!-- 自适应高度 -->
  <x-textarea v-model="value" autosize placeholder="自适应高度" />

  <!-- 限制行数范围 -->
  <x-textarea
    v-model="value"
    :autosize="{ minRows: 2, maxRows: 4 }"
    placeholder="自适应高度,最小2行,最大4行"
  />
</template>

API

Props

属性说明类型默认值
modelValue绑定值string''
placeholder占位文本string''
disabled是否禁用booleanfalse
readonly是否只读booleanfalse
maxlength最大输入长度number
minlength最小输入长度number
rows文本域默认行数number2
autosize自适应内容高度,可传入对象设置最小和最大行数boolean | { minRows?: number; maxRows?: number }false
showWordLimit是否显示字数统计booleanfalse
resize控制是否能被用户缩放'none' | 'both' | 'horizontal' | 'vertical''vertical'

Events

事件名说明回调参数
update:modelValue值改变时触发(value: string)
input输入时触发(value: string)
change值改变时触发(value: string)
focus获得焦点时触发(event: FocusEvent)
blur失去焦点时触发(event: FocusEvent)

Methods

方法名说明参数
focus使文本域获取焦点
blur使文本域失去焦点

基于 MIT 许可发布