Skip to content

Textarea 文本域 ​

查看 sn-textarea 的 2.0 版本差异

基础用法 ​

  • 基于 textarea 组件封装的多行文本输入域,通过 v-model 双向绑定输入内容。
  • 通过 height 控制高度,autoHeight 开启后高度随内容自动增高。
  • 内置聚焦激活态(边框/背景自动切换)、禁用与只读配色、加载状态、字数计数器。
  • 设置 maxlength 后右下角显示 已输入/最大字数 计数器,可用 counter 插槽自定义。
vue
<template>
	<sn-textarea v-model="text" :maxlength="50" placeholder="请输入内容"></sn-textarea>
</template>

<script lang="uts" setup>
const text = ref<string>('')
</script>

更多演示请下载 demo 查看

自动增高 ​

设置 autoHeight 后初始高度由内容撑开,输入多行时自动增高,height 不再生效。

vue
<template>
	<sn-textarea v-model="text" auto-height placeholder="自动增高"></sn-textarea>
</template>

<script lang="uts" setup>
const text = ref<string>('')
</script>

自定义样式 ​

通过 customStyle 定制根容器,inputStyle 内联作用于文本域本体,计数器可用 counterClass / counterStyle 定制。

vue
<template>
	<sn-textarea v-model="text" :maxlength="20" input-style="font-size: 18px; font-weight: bold;"
		counter-style="background-color: #ff6600; color: #fff;"
		placeholder="大字加粗 + 橙色计数器"></sn-textarea>
</template>

<script lang="uts" setup>
const text = ref<string>('')
</script>

属性 ​

参数说明类型默认值可选值
v-model绑定值String''-
name表单的控件名称,作为键值对的一部分与表单一同提交String''-
height文本域高度,autoHeight 开启时不生效String | Number100px-
placeholder输入框为空时的占位符String''-
placeholderStyle占位符内联样式String''-
placeholderClass占位符外部类String''-
maxlength最大输入长度,-1 表示不限制;设置后右下角显示字数计数器String | Number-1-
focus获取焦点Booleanfalsetrue | false
autoFocus自动获取焦点,与 focus 相比只在首次生效Booleanfalsetrue | false
autoHeight是否自动增高,开启后 height 不生效Booleanfalsetrue | false
cursor指定聚焦时的光标位置,-1 表示不指定String | Number-1-
cursorColor光标颜色String''-
cursorSpacing光标与键盘的距离(px)String | Number0-
selectionStart光标起始位置,自动聚焦时有效,需与 selectionEnd 搭配String | Number-1-
selectionEnd光标结束位置,自动聚焦时有效,需与 selectionStart 搭配String | Number-1-
confirmType键盘右下角按钮的文字Stringreturnsend | search | next | go | done | return
confirmHold点击键盘右下角按钮时是否保持键盘不收起Booleanfalsetrue | false
holdKeyboard聚焦时点击页面不收起键盘Booleanfalsetrue | false
adjustPosition键盘弹起时是否自动上推页面Booleantruetrue | false
inputmode输入数据类型提示,提供键盘类型提示Stringtextnone | text | decimal | numeric | tel | search | email | url
fixed是否为固定定位元素(textarea 原生属性,用于在固定区域内使用)Booleanfalsetrue | false
showConfirmBar是否显示键盘上方"完成"栏Booleantruetrue | false
disabled是否禁用,禁用后不可输入且背景、文字使用禁用配色Booleanfalsetrue | false
readonly是否只读,只读时颜色不变Booleanfalsetrue | false
loading是否加载中,右上角显示加载指示器(延迟 100ms 显示避免闪烁)Booleanfalsetrue | false
loadingClass加载指示器外部类String''-
loadingStyle加载指示器样式UTSJSONObject | String''-
showBorder是否显示边框Booleantruetrue | false
activeBorder聚焦时是否切换为激活边框颜色Booleantruetrue | false
borderColor边框颜色String'$line'-
activeBorderColor聚焦时的边框颜色String'$line'-
bgColor背景颜色String$info-
activeBgColor聚焦时的背景颜色String$info-
disabledBgColor禁用时的背景颜色String$disabled-
textColor文本颜色,禁用时为 $disabledTextString$text-
disabledTextColor禁用时的文本颜色String$disabledText-
borderRadius圆角大小String | Number$8-
borderWidth边框宽度String | Number1px-
padding内边距String8px 13px-
textSize文本字体大小String | Number$14-
textFont文本字体String''-
align文本对齐方式Stringleftleft | center | right
counterSize计数器字体大小String | Number$12-
counterColor计数器文本颜色String$text-
counterBgColor计数器背景颜色String$info-
inputStyle自定义文本域本体样式UTSJSONObject | String''-
inputClass文本域本体的外部类String''-
counterClass计数器外部类String''-
counterStyle自定义计数器样式UTSJSONObject | String''-
customStyle自定义根节点样式UTSJSONObject | String''-

事件 ​

名称类型说明
input(event: UniInputEvent) => Void键盘输入时触发,event.detail = { value, cursor }
focus(event: UniTextareaFocusEvent) => Void输入框聚焦时触发
blur(event: UniTextareaBlurEvent) => Void输入框失去焦点时触发
confirm(event: UniInputConfirmEvent) => Void点击键盘右下角按钮时触发
linechange(event: UniTextareaLineChangeEvent) => Void输入框行数变化时触发,event.detail = { height, heightRpx, lineCount }
keyboardheightchange(event: UniInputKeyboardHeightChangeEvent) => Void键盘高度变化时触发

插槽 ​

名称说明
counter替换内置的字数计数器(仅在设置了 maxlength 时渲染)

使用 MIT 协议