본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

Textarea 여러 줄 입력창

원문 보기 위키 갱신

텍스트를 입력하는 영역이에요.

출처: 문서

본문

언제 사용하나요?

직접 글자를 입력해야 하고 내용이 많을 때 사용해요.

기본 사용법

:::demo

<template>
  <div class="mb-0">Default</div>
  <d-textarea class="mb-2" v-model="valueDefault" autofocus id="textArea"></d-textarea>

  <div class="mb-0">Disabled</div>
  <d-textarea class="mb-2" placeholder="我是被禁用状态" disabled></d-textarea>

  <div class="mb-0">Error</div>
  <d-textarea v-model="valueError" placeholder="我是出错状态" error></d-textarea>
</template>

<script>
import { defineComponent, ref } from 'vue';

export default defineComponent({
  setup() {
    const valueDefault = ref('我是默认值');
    const valueError = ref('');
    return {
      valueDefault,
      valueError,
    };
  },
});
</script>

:::

입력창 높이 조절

:::demo

<template>
  <d-textarea v-model="valueHeight" :rows="5" placeholder="文本域高度可通过 rows 属性控制"></d-textarea>
</template>

<script>
import { defineComponent, ref } from 'vue';

export default defineComponent({
  setup() {
    const valueHeight = ref('');
    return {
      valueHeight,
    };
  },
});
</script>

:::

높이 자동 조절 입력창

autosize 속성을 설정하면 내용에 맞춰 높이가 자동 조절돼요. autosize에 최소·최대 높이를 담은 객체를 넘겨 입력창이 알아서 조절되게 할 수도 있어요.

:::demo

<template>
  <d-textarea class="mb-2" v-model="valueAutoSize1" autosize placeholder="请输入"></d-textarea>
  <d-textarea v-model="valueAutoSize2" :autosize="{ minRows: 2, maxRows: 4 }" placeholder="请输入" resize="both"></d-textarea>
</template>

<script>
import { defineComponent, ref } from 'vue';

export default defineComponent({
  setup() {
    const valueAutoSize1 = ref('');
    const valueAutoSize2 = ref('');
    return {
      valueAutoSize1,
      valueAutoSize2,
    };
  },
});
</script>

:::

크기 조절

:::demo

<template>
  <div class="mb-0">vertical</div>
  <d-textarea class="mb-2" placeholder="我可以缩放" resize="vertical"></d-textarea>

  <div class="mb-0">horizontal</div>
  <d-textarea class="mb-2" resize="horizontal" placeholder="请输入"></d-textarea>

  <div class="mb-0">both</div>
  <d-textarea class="mb-2" resize="both" placeholder="请输入"></d-textarea>

  <div class="mb-0">none</div>
  <d-textarea class="mb-2" resize="none" placeholder="请输入"></d-textarea>

  <div class="mb-0">inherit</div>
  <d-textarea class="mb-2" resize="inherit" placeholder="请输入"></d-textarea>
</template>

:::

글자 수 표시

:::demo

<template>
  <div class="mb-0">默认</div>
  <d-textarea class="mb-2" v-model="valueCount1" show-count placeholder="请输入"></d-textarea>
  <div class="mb-0">显示最大字数</div>
  <d-textarea v-model="valueCount2" show-count maxlength="20" placeholder="请输入"></d-textarea>
</template>

<script>
import { defineComponent, ref } from 'vue';

export default defineComponent({
  setup() {
    const valueCount1 = ref('');
    const valueCount2 = ref('');
    return {
      valueCount1,
      valueCount2,
    };
  },
});
</script>

:::

이벤트 응답

:::demo

<template>
  <d-textarea
    v-model="value1"
    show-count
    :max-length="20"
    placeholder="打开控制台输入文字看看"
    @update:modelValue="onUpdate"
    @change="onChange"
    @focus="onFocus"
    @keydown="onKeydown"
  ></d-textarea>
</template>

<script>
import { ref } from 'vue';
export default {
  setup() {
    const onUpdate = (value) => {
      console.log('【d-textarea update value】:', value);
    };
    const onChange = (value) => {
      console.log('【d-textarea change value】:', value);
    };
    const onFocus = (e) => {
      console.log('【d-textarea onFocus】:', e);
    };
    const onKeydown = (e) => {
      console.log('【d-textarea onKeydown:', e);
    };
    const value1 = ref('');
    return {
      onUpdate,
      onChange,
      onFocus,
      onKeydown,
      value1,
    };
  },
};
</script>

:::

Textarea 파라미터

파라미터 타입 기본값 설명 Demo 링크
v-model string - 선택, 텍스트 입력창 바인딩 값 기본 사용법
placeholder string - 선택, 텍스트 입력창 placeholder 기본 사용법
disabled boolean false 선택, 텍스트 입력창 비활성화 여부 기본 사용법
autofocus boolean false 선택, 텍스트 입력창 자동 포커스 여부 기본 사용법
error boolean false 선택, 텍스트 입력창 입력 오류 표시 여부 기본 사용법
resize Resize 'none' 선택, 텍스트 입력창 크기 조정 가능 여부 크기 조정
show-count boolean false 선택, 텍스트 입력창 글자 수 표시 여부 글자 수 표시
rows number / string 2 선택, 텍스트 입력창 높이 제어 텍스트박스 높이 제어
autosize boolean / object false textarea 높이 자동 맞춤 여부. 객체 허용, 예: { minRows: 2, maxRows: 6 } 자동 높이 텍스트박스
show-glow-style boolean true 선택, 호버 발광 효과 표시 여부

Textarea 이벤트

이벤트명 콜백 파라미터 설명 Demo 링크
update Function(value: string) 텍스트 입력창 콘텐츠 변경(실시간 트리거) 이벤트 응답
focus Function(event: Event) 텍스트 입력창 포커스 획득 이벤트 응답
blur Function(event: Event) 텍스트 입력창 포커스 상실 이벤트 응답
change Function(value: string) 텍스트 입력창 콘텐츠 변경(포커스 상실 시 트리거) 이벤트 응답
keydown Function(event: Event) 텍스트 입력창 키 입력 이벤트 응답

Textarea 타입 정의

Resize

type Resize = 'none' | 'vertical' | 'horizontal' | 'both' | 'inherit';

더 알아보기 (Learn more)

Textarea로 여러 줄 텍스트를 입력받을 수 있어요. 더 자세한 내용은 공식 문서를 참고하세요.