웹프레임워크/vue.js

v-for 구문 v-bind:key

quantumcode 2022. 1. 21. 12:06
728x90

vue.js v-bind:key

아래와 같이 코드를 입력하면 v-for 추가하면 v-bind:key 입력 오류가 나타난다.

<template>
  <div id="app">
    <ul>
      <li v-for="(menu,i) in gnb ">
        <router-link v-bind:to="{ name: menu.name }" >{{i}}{{menu.name}}</router-link>
      </li>
    </ul>
    <router-view/>
  </div>
</template>

아래 내용을 보면 문자열 이나 숫자 타입으로 추가하라는 경고가 나온다.

해결방벙 :

1. key 값에 for의 인덱스 값 입력

<template>
  <div id="app">
    <ul>
      <li v-for="(menu,i) in gnb" v-bind:key="i">
        <router-link v-bind:to="{ name: menu.name }" >{{i}}{{menu.name}}</router-link>
      </li>
    </ul>
    <router-view/>
  </div>
</template>

 

2. 메뉴별 이름을 특정하고 싶다면 key 값에 for의 인덱스 값 과 메뉴명의 조합으로 입력

<template>
  <div id="app">
    <ul>
      <li v-for="(menu,i) in gnb" v-bind:key="`${menu.name}-${i}`">
        <router-link v-bind:to="{ name: menu.name }" >{{i}}{{menu.name}}</router-link>
      </li>
    </ul>
    <router-view/>
  </div>
</template>

'웹프레임워크 > vue.js' 카테고리의 다른 글

mounted, created 차이점  (0) 2022.01.22
firebase 파일 분화하여 적용  (0) 2022.01.21
firestore 사용하기  (0) 2022.01.15
vue.js 콤포넌트에서 data 선언  (0) 2022.01.15
vue js + webpack install( 설치 )  (0) 2022.01.14