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>
기존에 함수로 작성하던 부분을 알아보기 쉽게 리팩토링 가능할 것 같다.