Input + Output = True

vue 3 - v-for ๋ฐ˜๋ณต๋ฌธ ๋ณธ๋ฌธ

๐ŸŽจFrontEnd/Vue

vue 3 - v-for ๋ฐ˜๋ณต๋ฌธ

IOTrue 2023. 7. 12. 00:36

๐Ÿ˜Ž vue 3 - v-for ๋ฐ˜๋ณต๋ฌธ

composition API๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค

โœ…  v-for

v-for์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๋‹ค
v-for ์‚ฌ์šฉ ์‹œ์—” ๊ฐ ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ์ถ”์ ํ•ด์„œ ์žฌ์‚ฌ์šฉ ๋ฐ ์žฌ์ •๋ ฌ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ ํ•ญ๋ชฉ์— ๋Œ€ํ•œ ๊ณ ์œ  key ์†์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค
์ฆ‰, ๋ฆฌ์ŠคํŠธ์˜ ์ˆœ์„œ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€, ์‚ญ์ œ ๋“ฑ ์žฌ์ •๋ ฌ์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ์—˜๋ฆฌ๋จผํŠธ์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ ์œ ํ•œ key ๊ฐ’์ด ํ•„์š”ํ•˜๋‹ค

// v-bind:key๋Š” :key๋กœ ์ถ•์•ฝ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค
<li v-for="(item, index) in items" :key="item.id">
  {{ index }} - {{ item.message }}
</li>

const items = ref([
	{ 
      id: 1,
      message: 'itemA' 
    }, 
    { 
      id: 2,
      message: 'itemB' 
    }
])

๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

items๋Š” ๋ Œ๋”๋งํ•  ๋ฐฐ์—ด์ด๋ฉฐ, item์€ ๋ฐฐ์—ด ๋‚ด ๋ฐ˜๋ณต๋˜๋Š” ์—˜๋ฆฌ๋จผํŠธ, index๋Š” ์•„์ดํ…œ ์ธ๋ฑ์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค
v-for์€ ํ•ด๋‹น ๋ฐ์ดํ„ฐ์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด ํ•ด๋‹น ์—˜๋ฆฌ๋จผํŠธ๋ฅผ ๊ทธ๋ฆฌ์ง€ ์•Š๋Š”๋‹ค

 

๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ๋Š” ์ˆซ์ž ๋ฒ”์œ„ ๋‚ด์—์„œ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค

<ul>
  <li v-for="n in 10">{{ n }}</li> // n์€ 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค
</ul>

๊ฒฐ๊ณผ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค

 

๊ฐ€๋Šฅํ•œ ํ•œ ์–ธ์ œ๋‚˜ v-for๋Š” key ์†์„ฑ๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

 

 

 

https://v3-docs.vuejs-korea.org/guide/essentials/list.html

 

๋ฆฌ์ŠคํŠธ ๋ Œ๋”๋ง | Vue.js

 

v3-docs.vuejs-korea.org

 

'๐ŸŽจFrontEnd > Vue' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

vue 3 - ์ด๋ฒคํŠธ ํ•ธ๋“ค๋ง  (1) 2023.07.16
vue 3 - v-if, v-show  (0) 2023.07.12
vue 3 - class & style  (0) 2023.07.11
vue 3 - computed (computed vs method)  (0) 2023.07.09
vue 3 ๋ฐ˜์‘ํ˜• - reactive and ref  (0) 2023.07.05
Comments