[Vue3] v-for에서의 Refs 사용방법

ChanSol Jeong·2023년 6월 29일
0
post-thumbnail

Composition API에서의 Refs는 기존에 다음과 같이 사용한다

<script setup>
import { ref, onMounted } from 'vue'

// 변수명은 반드시 template의 ref와 값과 같아야한다
const input = ref(null)

onMounted(() => {
  input.value.focus()
})
</script>

<template>
  <input ref="input" />
</template>

이렇게 Refs를 사용할 경우에는 v-for를 이용하여 동적 생성한 태그에 대해서는 Refs를 적용하기가 매우 힘들었다.
(함수를 통해서 Object나 Array에 담아주는 식으로 사용하였다.)

공식문서를 읽어보다가 발견하였는데
3.2.25 버전이후로는 v-for에 대한 Refs를 다음과 같이 지원한다

<script setup>
import { ref } from 'vue'

const list = ref([
  /* ... */
])

const itemRefs = ref([])

</script>

<template>
  <ul>
    <li v-for="(item,index) in list" :key="index" ref="itemRefs">
      {{ item }}
    </li>
  </ul>
</template>

기존에 함수로 작성하던 부분을 알아보기 쉽게 리팩토링 가능할 것 같다.

profile
Compostion API 맛있다!

0개의 댓글