์–ธ์–ด/Vue.js

์กฐ๊ฑด/๋ฐ˜๋ณต ๋ Œ๋”๋ง

MellowHoney 2024. 3. 29. 01:37
728x90
๋ฐ˜์‘ํ˜•

v-if ~ v-else-if ~ v-else

์„ค๋ช…

๐Ÿ”– ์กฐ๊ฑด๋ถ€๋กœ ๋ธ”๋ก์„ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ - true์ผ ๋•Œ๋งŒ ๋ Œ๋”๋ง

Type

<div v-if="type === 'A'">
  A
</div>
<div v-else-if="type === 'B'">
  B
</div>
<div v-else-if="type === 'C'">
  C
</div>
<div v-else>
  A/B/C ์•„๋‹˜
</div>

v-show

์„ค๋ช…

๐Ÿ”– ํ•ญ์ƒ ๋ Œ๋”๋ง๋˜๊ณ  DOM์— ๋‚จ์•„ ์žˆ๋‹ค, CSS ์†์„ฑ๋งŒ ์ „ํ™˜

Type

<h1 v-show="ok">์•ˆ๋…•!</h1>

v-for

์„ค๋ช…

๐Ÿ”– ๋ฐฐ์—ด์„ ๋ฆฌ์ŠคํŠธ๋กœ ๋ Œ๋”๋ง item in items

Type

<script setup>
const items = ref([{ message: 'Foo' }, { message: 'Bar' }])
</script>

<template>
	<ul>
	  <li v-for="value in myObject">
	    {{ value }}
	  </li>
	</ul>
</template>

์‚ฌ์šฉ๋ฒ•

๊ฐ์ฒด์— v-for ์‚ฌ์šฉํ•˜๊ธฐ

<script setup>
const myObject = reactive({
  title: 'Vue์—์„œ ๋ชฉ๋ก์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•',
  author: 'ํ™๊ธธ๋™',
  publishedAt: '2016-04-10'
})
</script>

<template>
	<ul>
	  <li v-for="value in myObject">
	    {{ value }}
	  </li>
	</ul>
</template>

์ˆซ์ž ๋ฒ”์œ„์— v-for ์‚ฌ์šฉํ•˜๊ธฐ

1...n ๋ฒ”์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ…œํ”Œ๋ฆฟ์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณต

<span v-for="n in 10">{{ n }}</span> <!-- 1๋ถ€ํ„ฐ 10๊นŒ์ง€ -->

<template>์—์„œ v-for ์‚ฌ์šฉํ•˜๊ธฐ

์—ฌ๋Ÿฌ ์—˜๋ฆฌ๋จผํŠธ ๋ธ”๋ก์„ ๋ Œ๋”๋ง

<template>
	<ul>
	  <template v-for="item in items">
	    <li>{{ item.msg }}</li>
	    <li class="divider" role="presentation"></li>
	  </template>
	</ul>
</template>

์šฐ์„ ์ˆœ์œ„

  • v-if > v-for
  • ๋”ฐ๋ผ์„œ ์„œ๋กœ ๊ฐ™์ด ์“ฐ๋Š”๊ฑธ ๊ถŒ์žฅํ•˜์ง€ ์•Š์Œ

v-if & v-show

  • ์ผ๋ฐ˜์ ์œผ๋กœ v-if๋Š” ์ „ํ™˜ ๋น„์šฉ์ด ๋” ๋†’๊ณ , v-show๋Š” ์ดˆ๊ธฐ ๋ Œ๋”๋ง ๋น„์šฉ์ด ๋” ๋†’์Œ.
  • ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ
    • v-show : ๋งค์šฐ ์ž์ฃผ ์ „ํ™˜ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ
    • v-if : ์‹คํ–‰ ์ค‘์— ์กฐ๊ฑด์ด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ
๋ฐ˜์‘ํ˜•