๐Ÿ“šย Reference


๐Ÿ“œย Chapter


ref, reactive

useTemplateRef()


useTemplateRef() - ์‚ฌ์šฉ๋ฒ•


์‚ฌ์šฉ ๋‹จ๊ณ„

  1. <script setup>์—์„œ ์„ ์–ธ: useTemplateRef() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ์ฐธ์กฐํ•  <template>์˜ ref ์†์„ฑ์— ์‚ฌ์šฉ๋  ๋ฌธ์ž์—ด ์‹๋ณ„์ž๋ฅผ ์ธ์ž๋กœ ์ „๋‹ฌํ•œ๋‹ค.
  2. <template>์— ์—ฐ๊ฒฐ: ํ•ด๋‹น ์‹๋ณ„์ž๋ฅผ DOM ์š”์†Œ๋‚˜ ์ปดํฌ๋„ŒํŠธ์˜ ref ์†์„ฑ์— ํ• ๋‹นํ•œ๋‹ค.
  3. ์ ‘๊ทผ: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋งˆ์šดํŠธ๋œ ํ›„, ๋ฐ˜ํ™˜๋œ ๊ฐ’์˜ .value๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์š”์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
<script setup>
import { onMounted, useTemplateRef } from 'vue';

// 1. 'myInput'์ด๋ผ๋Š” ๋ฌธ์ž์—ด ์‹๋ณ„์ž๋กœ ํ…œํ”Œ๋ฆฟ ์ฐธ์กฐ ์„ ์–ธ
//    ๋ฐ˜ํ™˜๋œ inputRef๋Š” ์ผ๋ฐ˜ ref์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ .value๋กœ ์ ‘๊ทผํ•ฉ๋‹ˆ๋‹ค.
const inputRef = useTemplateRef('myInput'); 

onMounted(() => {
  // 3. ๋งˆ์šดํŠธ ํ›„ DOM ์š”์†Œ์— ์ง์ ‘ ์ ‘๊ทผํ•˜์—ฌ focus ์„ค์ •
  inputRef.value?.focus(); 
});
</script>

<template>
  <input ref="myInput" placeholder="์—ฌ๊ธฐ์— ํฌ์ปค์Šค๊ฐ€ ๋งž์ถฐ์ง‘๋‹ˆ๋‹ค." />
</template>