Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Vue.js] v-if에 v-for 사용하기 본문
<template>
<div>
<!-- 첫 번째 예제: v-if 내부에 v-for를 사용할 때 -->
<div v-if="showList">
<ul>
<li v-for="item in items" :key="item.id">
{{ item.name }}
</li>
</ul>
</div>
<!-- 두 번째 예제: v-for를 <template> 태그로 감싼 후 v-if와 함께 사용 -->
<template v-if="showList">
<ul>
<li v-for="item in items" :key="item.id">
{{ item.name }}
</li>
</ul>
</template>
</div>
</template>
<script>
import { reactive } from 'vue';
export default {
setup() {
const showList = true;
// 데이터 배열
const items = reactive([
{ id: 1, name: '아이템 1' },
{ id: 2, name: '아이템 2' },
{ id: 3, name: '아이템 3' }
]);
return { showList, items };
}
};
</script>
<style scoped>
/* 컴포넌트에만 적용될 스타일을 작성할 수 있습니다. */
</style>
Vue에서 v-if 내부에 v-for를 사용할 때와 태그로 감싼 후 v-if와 함께 사용하는 방법에 대해 알아봅시다.
첫 번째 예제에서는 v-if 내부에 v-for를 사용하는 경우를 보여줍니다. 그러나 이런 구성은 오류를 일으킬 수 있습니다. 왜냐하면 v-if가 v-for보다 우선순위가 높기 때문에 v-if 조건문에서 v-for 변수에 접근할 수 없기 때문입니다.
두 번째 예제에서는 태그로 감싼 후 v-if와 함께 v-for를 사용하는 방법을 보여줍니다. 이렇게 하면 명시적으로 v-for를 태그로 감싸게 되므로, 코드의 가독성이 높아지고 오류를 방지할 수 있습니다.
v-if와 v-for를 같은 노드에 사용할 때는 주의해야 합니다. 명시적으로 처리하고자 할 때에는 태그로 감싼 후 사용하는 것이 좋습니다.