[πŸ‘¨πŸ»β€πŸ’»TA9 인턴 32일차]데이터바인딩, v-for, @click, v-if

GoofiΒ·2023λ…„ 8μ›” 18일
0

Vue.js

HTML 속성 데이터바인딩

style="", id="", class=""에도 데이터바인딩이 κ°€λŠ₯ν•˜λ‹€.

  <div>
    <h4 :style="μŠ€νƒ€μΌ">XX 원룸</h4>
  </div>

<script>
export default {
  name : 'App',
  data(){
    return {
      μŠ€νƒ€μΌ : 'color:red'
    }
  }
}
</script>

v-for

v-for을 μ‚¬μš©ν•˜λ©΄ HTML을 λ°˜λ³΅ν•  수 μžˆλ‹€.

μ‚¬μš©λ²•

v-for="μž‘λͺ… in λ°˜λ³΅ν•  횟수"

예제

<div class="menu">
	<a v-for="μž‘λͺ… in 3" :key="μž‘λͺ…">Home</a>
</div>

Homeμ΄λΌλŠ” aνƒœκ·Έκ°€ 3κ°œκ°€ μƒμ„±λœλ‹€.

예제2

data(){
  return {
    메뉴듀 : ['Home', 'Shop', 'About']
  }
}
<div class="menu">
  <a v-for="μž‘λͺ… in 메뉴듀" :key="μž‘λͺ…">{{ μž‘λͺ… }}</a>
</div>

λ©”λ‰΄λ“€μ•ˆμ˜ 자료 갯수만큼 λ°˜λ³΅λœλ‹€.
μž‘λͺ…ν•œ λ³€μˆ˜λŠ” 반볡될 λ•Œλ§ˆλ‹€ 메뉴듀 μ•ˆμ— 있던 μžλ£Œλ“€μ΄ λœλ‹€.

예제3

<div class="menu">
  <a v-for="(μž‘λͺ…,i) in 메뉴듀" :key="i"> {{ μž‘λͺ… }}</a>
</div>

v-for μ•ˆμ— λ³€μˆ˜λŠ” 2κ°œκΉŒμ§€ μž‘λͺ…이 κ°€λŠ₯ν•˜λ‹€.
iλŠ” 1μ”© μ¦κ°€ν•˜λŠ” μ •μˆ˜κ°€ λœλ‹€. 즉, 반볡 횟수λ₯Ό μ•Œλ €μ£ΌλŠ” 숫자라고 보면 λœλ‹€.

@click

λ²„νŠΌμ„ λˆ„λ₯΄λ©΄ κΈ°λŠ₯을 μ‹€ν–‰ν•˜κ³  싢은 κ²½μš°μ— μ‚¬μš©ν•œλ‹€.

예제

data(){
  return {
    μ‹ κ³ μˆ˜ : 0,
  },
}

methods : { 
  increase(){ 
    this.μ‹ κ³ μˆ˜ += 1 
  } 
}

methods 내에 μžˆλŠ” ν•¨μˆ˜μ—μ„œ dataλ₯Ό κ°€μ Έκ°€λ‹€ μ“°κ³  μ‹ΆμœΌλ©΄ κΌ­ this.데이터이름이라고 μ‚¬μš©ν•΄μ•Ό ν•œλ‹€.

data(){} 이 뢀뢄은 λ¦¬μ•‘νŠΈμ—μ„œ state라고 λΆ€λ₯Έλ‹€.

<div>
  <button @click="increase()">μ‹ κ³ </button>
  <span>μ‹ κ³ μˆ˜ : {μ‹ κ³ μˆ˜}</span>
</div>

ν•¨μˆ˜() μœ„μ— μžˆλŠ” μ½”λ“œμ²˜λŸΌ μž‘μ„±ν•΄λ„ λ˜μ§€λ§Œ @click="increase" μ΄λ ‡κ²Œ μž‘μ„±ν•΄λ„ λœλ‹€.

v-if

데이터 μƒνƒœμ— 따라 HTML UI을 보여쀄지 말지λ₯Ό μ •ν•œλ‹€.
HTML νƒœκ·Έ μ•ˆμ— v-if="쑰건식"을 μ‚¬μš©ν•˜λ©΄ 쑰건식이 참일 λ•Œλ§Œ HTML을 보여쀀닀.

<div class="black-bg" v-if="λͺ¨λ‹¬μ°½μ—΄λ Έλ‹ˆ == true">
  <div class="white-bg">
    <h4>μƒμ„ΈνŽ˜μ΄μ§€</h4>
    <p>μƒμ„ΈνŽ˜μ΄μ§€λ‚΄μš©μž„</p>
  </div>
</div>

'λͺ¨λ‹¬μ°½μ—΄λ Έλ‹ˆ'λΌλŠ” 데이터가 true일 λ•Œλ§Œ <div>λ₯Ό 보여쀀닀.

v-else

<div v-if="1 == 2">
  μ•ˆλ…•ν•˜μ„Έμš”
</div>
<div v-else>
  μ•ˆλ…•ν•˜μ„Έμš”2
</div>

v-if에 적은 쑰건식이 참이 아닐 κ²½μš°μ— v-elseλ₯Ό 보여쀀닀.

v-else-if

<div v-if="1 == 2">
  μ•ˆλ…•ν•˜μ„Έμš”
</div>
<div v-else-if="1 == 3">
  μ•ˆλ…•ν•˜μ„Έμš”2
</div>

쑰건식 연달아 μ‚¬μš©ν•  λ•ŒλŠ” v-else-ifλ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.

profile
μ˜€λŠ˜λ³΄λ‹¨ 내일이 κ°•ν•œ κ°œλ°œμžμž…λ‹ˆλ‹€!!πŸ§‘πŸ»β€πŸ’»

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보