SeouliteLab

[Vue.js] v-for의 변수 범위와 JavaScript 비교하기 본문

카테고리 없음

[Vue.js] v-for의 변수 범위와 JavaScript 비교하기

Seoulite Lab 2024. 5. 2. 10:03
<template>
  <div>
    <!-- 첫 번째 예제: v-for에서 외부 변수에 접근하기 -->
    <ul>
      <li v-for="item in items" :key="item.id">
        {{ item.name }} (부모 메시지: {{ parentMessage }})
      </li>
    </ul>

    <!-- 두 번째 예제: v-for 내부에서만 접근 가능한 변수 -->
    <ul>
      <li v-for="(item, index) in items" :key="item.id">
        {{ index + 1 }}번째 아이템: {{ item.name }}
      </li>
    </ul>
  </div>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const parentMessage = ref('Parent'); // 부모 메시지를 저장하는 ref 속성

    // 가상의 아이템 배열 생성
    const items = [
      { id: 1, name: '사과' },
      { id: 2, name: '바나나' },
      { id: 3, name: '오렌지' }
    ];

    return { items, parentMessage };
  }
};
</script>

<style scoped>
/* 컴포넌트에만 적용될 스타일을 작성할 수 있습니다. */
</style>

Vue에서 v-for의 변수 범위와 JavaScript의 비교에 대해 알아봅시다.

첫 번째 예제에서는 v-for 디렉티브를 사용하여 items 배열을 반복하면서 각 아이템의 이름을 출력하고, 동시에 상위 범위의 parentMessage 속성에 접근합니다. parentMessage는 ref로 정의된 상위 범위 속성으로, v-for 내부뿐만 아니라 외부에서도 접근할 수 있습니다.

두 번째 예제에서는 (item, index) 구문을 사용하여 v-for 디렉티브 내부에서만 접근 가능한 item과 index를 사용하여 각 아이템의 번호를 출력합니다. forEach의 콜백 함수 내부에서만 접근 가능한 것과 비슷하게, v-for의 변수 범위도 해당 반복문 내에서만 유효합니다.

이렇게 함으로써 Vue에서 v-for의 변수 범위를 JavaScript와 비교하여 이해할 수 있습니다.