SeouliteLab

[Vue.js] 중첩된 v-for의 범위와 함수의 유사성 본문

카테고리 없음

[Vue.js] 중첩된 v-for의 범위와 함수의 유사성

Seoulite Lab 2024. 5. 2. 10:04
<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 범위에는 상위 범위에 대한 접근 권한이 있습니다. 이를 통해 다양한 형태의 데이터를 반복하여 효율적으로 처리할 수 있습니다.