Skip to content

Textarea 文本域

用于输入较长文本内容,适合意见反馈、备注说明、评论回复等多行编辑场景。

交互式调试

🔧调试模式Playground

基础用法

vue
<script setup lang="ts">
import { ref } from 'vue'

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

<template>
  <lk-textarea v-model="content" placeholder="请输入内容" />
</template>

风格变体

组件内置 outlinefilledflush 三种视觉风格。

vue
<template>
  <lk-textarea placeholder="默认描边" variant="outline" />
  <lk-textarea placeholder="填充风格" variant="filled" />
  <lk-textarea placeholder="无边框列表态" variant="flush" />
</template>

自动增高与字数统计

vue
<script setup lang="ts">
import { ref } from 'vue'

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

<template>
  <lk-textarea
    v-model="bio"
    auto-height
    :maxlength="200"
    show-count
    placeholder="请输入个人简介"
  />
</template>

清空按钮与底部扩展区

通过 clearable 提供快捷清空;通过 footersuffix 插槽扩展底部辅助操作与右侧区域。

vue
<template>
  <lk-textarea clearable placeholder="写评论...">
    <template #suffix>
      <lk-icon name="emoji-smile" />
    </template>

    <template #footer>
      <view class="quick-tags">
        <text>#推荐</text>
        <text>#好评</text>
      </view>
    </template>
  </lk-textarea>
</template>

与表单联动

传入与 lk-form-item 一致的 prop,可在失焦或清空时联动表单校验。

vue
<template>
  <lk-form :model="form" :rules="rules">
    <lk-form-item label="备注" prop="remark">
      <lk-textarea v-model="form.remark" prop="remark" show-count :maxlength="100" />
    </lk-form-item>
  </lk-form>
</template>

键盘与光标控制

vue
<template>
  <lk-textarea
    v-model="content"
    focus
    confirm-type="done"
    :confirm-hold="false"
    :cursor-spacing="24"
    :selection-start="0"
    :selection-end="6"
    @confirm="event => console.log(event.detail?.value)"
    @keyboardheightchange="event => console.log(event.detail)"
    @linechange="event => console.log(event.detail?.lineCount)"
  />
</template>

推荐示例

1) 直接复用项目 Demo(推荐)

vue
<script setup lang="ts">
import TextareaDemo from '@/components/demos/textarea-demo.vue'
</script>

<template>
  <TextareaDemo />
</template>

2) 在业务页中按需组合

vue
<template>
  <view class="page-demo">
    <lk-textarea />
  </view>
</template>

API

Props

参数说明类型可选值默认值
modelValue绑定值,支持 v-modelstring''
label顶部标签文本string''
placeholder占位内容string请输入内容
placeholderStyle占位符样式string''
placeholderClass占位样式类名stringlk-textarea__placeholder
name原生表单字段名string''
variant风格变体stringoutline / filled / flushoutline
disabled是否禁用booleanfalse
readonly是否只读,只读时禁用原生输入与清空booleanfalse
maxlength最大输入长度,-1 表示不限制number-1
autoHeight是否自动增高booleanfalse
showCount是否显示字数统计booleanfalse
clearable是否显示清空按钮booleanfalse
autofocus首次渲染时是否自动聚焦booleanfalse
focus是否聚焦,受控聚焦状态booleanfalse
confirmType键盘右下角按钮文字stringsend / search / next / go / done / returnreturn
confirmHold点击键盘右下角按钮时是否保持键盘不收起booleanfalse
adjustPosition键盘弹起时是否自动上推页面booleantrue
cursorSpacing光标与键盘距离,单位 pxnumber0
cursor指定聚焦时的光标位置number-1
selectionStart光标起始位置,需与 selectionEnd 搭配使用number-1
selectionEnd光标结束位置,需与 selectionStart 搭配使用number-1
fixed是否展示在键盘上方booleanfalse
showConfirmBar是否显示键盘上方完成栏booleantrue
disableDefaultPadding是否去掉 iOS 默认内边距booleantrue
holdKeyboard聚焦时点击页面是否保持键盘不收起booleanfalse
autoBlur键盘收起时是否自动失焦booleanfalse
inputmodeH5/App 输入模式提示stringnone / text / decimal / numeric / tel / search / email / urltext
ignoreCompositionEvent是否忽略系统组合输入事件booleantrue
prop表单字段名string''
validateEvent是否触发表单验证联动booleantrue
id根节点 idstring''
customClass自定义类名string / object / array''
customStyle自定义样式string / object''

Events

事件名说明回调参数
update:modelValue输入值变化时触发,用于 v-model(value: string)
input键盘输入时触发(value: string)
change失焦或清空后的最终值变化(value: string)
focus聚焦时触发(event: Event)
blur失焦时触发(event: Event)
confirm点击键盘确认按钮时触发(event: Event)
clear点击清空按钮时触发()
linechange行数变化时触发,event.detailheight / heightRpx / lineCount(event: Event)
keyboardheightchange键盘高度变化时触发,event.detailheight / duration(event: Event)
compositionstart组合输入开始时触发(event: Event)
compositionupdate组合输入更新时触发(event: Event)
compositionend组合输入结束时触发(event: Event)

Slots

插槽名说明
suffix右侧扩展区域,常用于表情、附件按钮
footer底部扩展区域,位于计数左侧

使用建议

TIP

如果是短文本输入,优先使用 lk-input;只有在内容可能换行时再使用 lk-textarea

WARNING

linechangekeyboardheightchangeshowConfirmBarinputmode 等能力存在平台差异,请以 UniApp 当前运行端的原生 textarea 能力为准。

基于 MIT 协议开源 · 粤ICP备2022114240号-3

Textarea 文本域

正在连接预览服务...

请先运行 pnpm run dev:h5