Skip to content

Autosize 自适应文本域

根据文本内容自动调整高度的文本域组件。无需手动拖拽调整大小,输入时会自动扩缩至合适高度。

基础用法

通过 v-model 双向绑定文本内容,高度随输入自动变化。

查看代码
vue
<script setup lang="ts">
import { ref } from 'vue'
import { TAutosize } from '@gulcc/tabler-vue'

const text = ref('')
</script>

<template>
  <TAutosize v-model="text" placeholder="请输入内容…" />
</template>

初始行数

rows 控制文本域的最小高度(即最少显示几行)。默认 3

vue
<TAutosize v-model="text" :rows="1" />
<TAutosize v-model="text" :rows="5" />

最大行数

max-rows 限制展开的最大行数。超出后显示垂直滚动条。

vue
<TAutosize v-model="text" :max-rows="3" />

初始内容自适应

挂载时即根据已有内容自动调整高度。

vue
<TAutosize v-model="text" />

禁用 / 只读

disabled 禁止交互,readonly 允许复制但不可编辑。两种状态下高度仍会自动调整。

vue
<TAutosize v-model="text" disabled />
<TAutosize v-model="text" readonly />

API

Props

参数类型默认值说明
v-model / modelValuestring''当前文本内容
placeholderstring占位符文本
rowsnumber3最小行数,控制初始高度
max-rowsnumber最大行数,超出后显示滚动条
disabledbooleanfalse禁用交互
readonlybooleanfalse只读模式
maxlengthnumber最大字符数
namestring原生 name 属性
idstring原生 id 属性
requiredbooleanfalse必填验证

Emits

事件名参数说明
update:modelValue(value: string)v-model 更新事件
change(value: string)内容变化时触发