Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Vue.js] 중첩된 v-for의 범위와 함수의 유사성 본문
<template>
<div>
<!-- 첫 번째 예제: 중첩된 v-for를 사용하여 이차원 배열 렌더링하기 -->
<ul>
<li v-for="(row, rowIndex) in matrix" :key="rowIndex">
<ul>
<li v-for="(cell, cellIndex) in row" :key="cellIndex">
행: {{ rowIndex }}, 열: {{ cellIndex }}, 값: {{ cell }}
</li>
</ul>
</li>
</ul>
<!-- 두 번째 예제: 중첩된 v-for에서 상위 범위에 대한 접근 -->
<div v-for="outer in outerItems" :key="outer.id">
<div v-for="inner in outer.innerItems" :key="inner.id">
상위 아이템 ID: {{ outer.id }}, 하위 아이템 ID: {{ inner.id }}
</div>
</div>
</div>
</template>
<script>
import { ref } from 'vue';
export default {
setup() {
// 첫 번째 예제를 위한 이차원 배열 생성
const matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
// 두 번째 예제를 위한 중첩된 객체 배열 생성
const outerItems = [
{ id: 1, innerItems: [{ id: 101 }, { id: 102 }] },
{ id: 2, innerItems: [{ id: 201 }, { id: 202 }] },
{ id: 3, innerItems: [{ id: 301 }, { id: 302 }] }
];
return { matrix, outerItems };
}
};
</script>
<style scoped>
/* 컴포넌트에만 적용될 스타일을 작성할 수 있습니다. */
</style>
Vue에서 중첩된 v-for의 범위와 함수의 유사성에 대해 알아봅시다.
첫 번째 예제에서는 중첩된 v-for 디렉티브를 사용하여 이차원 배열을 렌더링합니다. 외부 v-for는 각 행(row)을 반복하고, 내부 v-for는 각 행의 열(cell)을 반복합니다. 이를 통해 이차원 배열의 각 요소를 출력하고, 행과 열의 인덱스와 해당 값을 표시합니다.
두 번째 예제에서는 중첩된 v-for에서 상위 범위에 대한 접근을 보여줍니다. 바깥쪽 v-for는 outerItems 배열을 반복하고, 안쪽 v-for는 각 outerItem의 innerItems 배열을 반복합니다. 이를 통해 각 상위 아이템과 하위 아이템의 ID를 출력합니다.
중첩된 v-for는 중첩된 함수와 유사한 범위를 가지며, 각 v-for 범위에는 상위 범위에 대한 접근 권한이 있습니다. 이를 통해 다양한 형태의 데이터를 반복하여 효율적으로 처리할 수 있습니다.