재밌고 어려운 IT를 이해해보자~!

반복문 본문

Vue.js

반복문

언제나즐거운IT 2024. 7. 1. 20:02

html 에서 배열 데이터 바인딩하기

<template>
  <img alt="Vue logo" src="./assets/logo.png">
  <div>
    <h4>{{product[0]}}</h4>
    <p>50 만원</p>
  </div>
  <div>
    <h4>{{product[1]}}</h4>
    <p>60 만원</p>
  </div>
  <div>
    <h4>{{product[2]}}</h4>
    <p>70 만원</p>
  </div>
</template>

<script>

export default {
  name: 'App',
  data() {
    return {
      product : ['성남시', '구리시', '서울'],
    }
  },
  components: {
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

 

html과 같이 화면을 구성하다보면 반복되는 태그들이 생긴다.
vue에서의 태그 반복문은 v-for이다.

 

<a v-for="작명 in 횟수" :key="작명"></a>
<a v-for="(작명1, 작명2) in 횟수" :key="작명1"></a>

 

횟수 자리에는 js에 있는 데이터도 넣을 수 있다.
이럴 경우, 자료형 안에 있는 데이터의 갯수만큼 반복한다.
횟수를 숫자로 명시할 때 보다 더 이점이 있다.

작명을 두 개 까지 할 수 있다.
작명 1은 array내의 데이터이고, 작명2는 1씩 증가하는 정수, 즉 array의 인덱스이다.

 

:key=""의 용도
반복문을 쓸 때 꼭 써주어야 한다.
반복문을 돌린 요소를 컴퓨터가 구분할 수 있게 하기 위해 사용

 

<template>
  <div class="menu">
    <a v-for="menu in menus" :key="menu"> {{ menu }}</a>
  </div>
  <div v-for="product in products" :key="product">
    <h4>{{ product.name }}</h4>
    <p>{{ product.price }} 만원</p>
  </div>
</template>

<script>

export default {
  name: 'App',
  data() { 
    return {
      menus : [ 'Home', 'Shop', 'About'], //메뉴 데이터 배열
      products : [ //원룸 상품 데이터 배열
        {name: '역삼동 원룸', price: 50},
        {name: '구리시 원룸', price: 60},
        {name: '영등포 원룸', price: 70},
      ],
    }
  },
  components: {}
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
}

.menu {
  background-color: darkslateblue;
  padding: 15px;
  border-radius: 5px;
}

.menu a {
  color: white;
  padding: 10px;
}
</style>

'Vue.js' 카테고리의 다른 글

Vue.js의 구조  (0) 2024.12.21
문법 정리  (0) 2024.07.01
이벤트 핸들러  (0) 2024.07.01
데이터 바인딩  (0) 2024.07.01
Vue.js 시작  (0) 2024.07.01
Comments