๊ด€๋ฆฌ ๋ฉ”๋‰ด

๐Ÿ–ฅ dev-ruby

[Vue] #2 - v-for๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ ๋ณธ๋ฌธ

Vue

[Vue] #2 - v-for๋ฌธ ์‚ฌ์šฉํ•˜๊ธฐ

ruby_s 2021. 8. 6. 09:20
728x90
๋ฐ˜์‘ํ˜•
SMALL
1. v-for ๋ฐ˜๋ณต๋ฌธ
  
๋ชจ๋“  HTMLํƒœ๊ทธ์— ์ ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค
<ํƒœ๊ทธ v-for="๋ณ€์ˆ˜๋ช… in ๋ฐ˜๋ณตํšŸ์ˆ˜ " :key="๋ณ€์ˆ˜๋ช…">

 ex )

 <a v-for="x in 3 " :key="x">

 

:key์˜ ์šฉ๋„
-๋ฐ˜๋ณต๋ฌธ์“ธ ๋•Œ ๊ผญ ์จ์•ผํ•œ๋‹ค
-๋ฐ˜๋ณต๋ฌธ ๋Œ๋ฆฐ ์š”์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์”€

 1-1. v-for๋ฅผ ํ™œ์šฉํ•ด ํ…œํ”Œ๋ฆฟ์— ๋ณ€์ˆ˜์ถœ๋ ฅ
menus : [' ', ' ', ' ']
1๋ฒˆ
<a v-for="menu in menus" :key="menu">{{ menu }}</a>

2๋ฒˆ
<a v-for="(menu,i) in menus" :key="i">{{ menus[i] }}</a>

1-2. 2๊ฐœ์˜ ๋ณ€์ˆ˜ ๊ฐ€๋Šฅ
<a v-for="(menu, i) in menus" :key="i">{{ menu }}</a>โ€‹

menu๋Š” ๋ฐฐ์—ด์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋˜๊ณ , i๋Š” ์ธ๋ฑ์Šค๊ฐ€ ๋œ๋‹ค -> 2๊ฐœ์“ฐ๋ ค๋ฉด ๋’ค์— ๊บผ๋ฅผ key์— ๋„ฃ์–ด์ค˜์•ผํ•จ

 ์˜ˆ์ œ
<!-- 1๋ฒˆ -->
    <div v-for="product in products" :key="product">
        <h4 class="red" :style="์Šคํƒ€์ผ">{{ product }}</h4>
        <!-- ์• ์ดˆ์— ๋ฐ”๋€” ์ผ์ด ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ํ•„์š” X -->
        <p>{{ price1 }}๋งŒ์›</p>
        <!-- ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ -->
        <button v-on:click="์‹ ๊ณ ์ˆ˜[0]++">ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ </button> <span>์‹ ๊ณ  ์ˆ˜ : {{์‹ ๊ณ ์ˆ˜}}</span>
                      <!-- ์‹ ๊ณ ์ˆ˜+= 1 -->
    </div>
    <!-- 2๋ฒˆ -->
      <div v-for="(product,i) in products" :key="i">
        <h4 class="red" :style="์Šคํƒ€์ผ">{{ products[i] }}</h4>
        <!-- ์• ์ดˆ์— ๋ฐ”๋€” ์ผ์ด ์—†์œผ๋ฉด ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ํ•„์š” X -->
        <p>{{ price1 }}๋งŒ์›</p>
        <!-- ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ -->
        <button @click="javascript">ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ </button> <span>์‹ ๊ณ  ์ˆ˜ : {{์‹ ๊ณ ์ˆ˜}}</span>
        <button @mouseover="increase">ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ </button> <span>์‹ ๊ณ  ์ˆ˜ : {{์‹ ๊ณ ์ˆ˜}}</span>
    </div>
728x90
๋ฐ˜์‘ํ˜•
LIST