vuejs 기능 중 v-for에 대한 기능을 설명합니다.
v-for는 반복되는 Element를 구성할 때 자주 사용되는 기능입니다.
<template>
<template v-for="user of UserList" :key="`user-${user.id}`">
<div :id="user.id">
{{ user.name }}
</div>
<span>{{ user.email }}</span>
</template>
</template>
<script setup lang="ts">
interface User {
id: string
name: string
email: string
}
const UserList = reactive<User[]>([
{ id: 'test1', name: '테스트1', email: 'test1@test.com' },
{ id: 'test2', name: '테스트2', email: 'test2@test.com' },
{ id: 'test3', name: '테스트3', email: 'test3@test.com' }
])
</script>
위 처럼 template 태그를 사용할 수 있고, 아니면 실제 태그(div, span, tr...) 로도 사용이 가능하다.
v-for의 중요한 점은 꼭 key를 지정해야 한다는 점이다. key를 지정하지 않으면 vuejs가 임의로 똑같은 key로 지정하는데,
나중에 화면 갱신을 한다던가, 재 랜더링 시에 오동작을 일으킬수 있는 요지가 있다.
그리고 v-if와 사용 시 주의가 필요한데,
출처 : Priority A Rules: Essential | Vue.js (vuejs.org)
위 처럼 v-for와 v-if는 같은 Element에서 사용해서는 안되며, 필요할 경우 template를 사용해서 분리를 시켜줘야 한다.
v-for 요점 정리
1. 항상 key를 지정할 것!
2. v-if와 같이 사용하지 말 것!
이 외에 자주사용되는 기능을 설명하면,
객체 순회
v-for는 객체의 키와 값도 순회할 수 있습니다.
<template>
<div>
<div v-for="(value, key) in user" :key="key">{{ key }}: {{ value }}</div>
</div>
</template>
<script setup>
const user = {
name: 'Alice',
age: 30,
email: 'alice@example.com'
};
</script>
설명:
- v-for="(value, key) in user": 객체의 키와 값을 순회.
- :key="key": 객체의 키를 고유 식별자로 사용.
필터링된 리스트 렌더링
<template>
<ul>
<li v-for="item in filteredItems" :key="item.id">{{ item.name }}</li>
</ul>
</template>
<script setup>
import { computed } from 'vue';
const items = [
{ id: 1, name: 'Item 1', visible: true },
{ id: 2, name: 'Item 2', visible: false },
{ id: 3, name: 'Item 3', visible: true }
];
const filteredItems = computed(() => items.filter((item) => item.visible));
</script>
설명:
- computed를 활용하여 필터링된 데이터만 렌더링.
반응형
'개발 > Vue' 카테고리의 다른 글
Vue(version 3) 주요 기능 정리(v-model) #5 (0) | 2024.02.02 |
---|---|
Vue(version 3) 주요 기능 정리(v-model) #4 (0) | 2024.01.28 |
Vue(version 3) 주요 기능 정리(v-if, v-show) #2 (0) | 2024.01.26 |
Vue(version 3) 주요 기능 정리(ref, reactive, computed) #1 (0) | 2024.01.14 |
Vite, Typescript 상대 Path 잡는 법 (0) | 2023.04.21 |
댓글