Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Vue.js] key를 통한 상태 유지 본문
<template>
<div>
<!-- 첫 번째 예제: key를 사용하지 않는 경우 -->
<ul>
<li v-for="(item, index) in items" :key="index">
{{ item }}
</li>
</ul>
<!-- 두 번째 예제: key를 사용하여 상태를 유지하는 경우 -->
<ul>
<li v-for="item in itemsWithKeys" :key="item.id">
{{ item.name }}
</li>
</ul>
</div>
</template>
<script>
import { reactive } from 'vue';
export default {
setup() {
// key를 사용하지 않은 데이터 배열
const items = reactive(['사과', '바나나', '딸기']);
// key를 사용한 데이터 배열
const itemsWithKeys = reactive([
{ id: 1, name: '사과' },
{ id: 2, name: '바나나' },
{ id: 3, name: '딸기' }
]);
return { items, itemsWithKeys };
}
};
</script>
<style scoped>
/* 컴포넌트에만 적용될 스타일을 작성할 수 있습니다. */
</style>
Vue에서 key를 통한 상태 유지에 대해 알아봅시다.
첫 번째 예제에서는 key를 사용하지 않고 v-for 디렉티브를 사용하여 리스트를 렌더링하는 경우를 보여줍니다. 이 경우 Vue는 인덱스를 기준으로 리스트를 렌더링하게 되는데, 이는 상태를 제대로 유지하지 못할 수 있습니다.
두 번째 예제에서는 key를 사용하여 상태를 유지하는 방법을 보여줍니다. 각 아이템에 고유한 키를 부여하여 Vue가 리스트를 업데이트할 때 아이템의 상태를 제대로 유지할 수 있도록 합니다. 이렇게 하면 Vue가 "in-place patch" 전략을 사용하여 업데이트하며, 리스트 아이템의 순서가 변경되어도 상태가 유지됩니다.
key를 사용하여 상태를 유지하면 Vue가 효율적으로 리스트를 업데이트할 수 있으며, 애플리케이션의 성능과 사용자 경험을 향상시킬 수 있습니다.