[Vue.js] @click=""

zoeyยท2022๋…„ 12์›” 12์ผ
0

Vue.js

๋ชฉ๋ก ๋ณด๊ธฐ
7/8
post-thumbnail

๐Ÿ’ก ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ  ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์‹ ๊ณ ์ˆ˜๊ฐ€ 1 ์ฆ๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

๐ŸŸข step 1. ๋ฒ„ํŠผ์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค

<div>
  <h4>{{products[0]}}</h4>
  <p>50๋งŒ์›</p>
  <button>ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ </button> 
  <span>  ์‹ ๊ณ ์ˆ˜ : 0</span>
</div>

๐ŸŸข step 2. ์‹ ๊ณ ์ˆ˜๋ฅผ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค

data(){
	return {
    	์‹ ๊ณ ์ˆ˜ : 0, 
    }
}

๐ŸŸข step 3. @click

<template>
  <div>
    <h4>{{products[0]}}</h4>
    <p>50๋งŒ์›</p>
    <button @click="notify">ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ </button> 
    <span>  ์‹ ๊ณ ์ˆ˜ : {{์‹ ๊ณ ์ˆ˜}}</span>
  </div>
</template>

๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ notify๋ผ๋Š” ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค

๐ŸŸข step 3. ๋ฒ„ํŠผ์„ ๋ˆŒ๋ €์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ํ•จ์ˆ˜ ์ž‘์„ฑ
methods ์•„๋ž˜์— notify๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค

<script>
export default {
  name: 'App',
  data(){
    return {
      //์ด ๋ถ€๋ถ„์— ๋ฐ์ดํ„ฐ ์ž…๋ ฅํ•˜๊ธฐ!!
      products : ['๊ธˆ๊ณก๋™ ์›๋ฃธ', '์ •์ž๋™ ์›๋ฃธ', '๊ตฌ๋ฏธ๋™ ์›๋ฃธ'],
      ์‹ ๊ณ ์ˆ˜ : 0,
    }
  },
  methods: {
    notify(){
      //this.์‹ ๊ณ ์ˆ˜ = this.์‹ ๊ณ ์ˆ˜ + 1; 
      this.์‹ ๊ณ ์ˆ˜++
    }
  }
}
</script>

์ „์ฒด ์ฝ”๋“œ ๋ณด๊ธฐ---

<template>
  <div>
  <h4>{{products[0]}}</h4>
  <p>50๋งŒ์›</p>
  <button @click="notify">ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ </button> 
  <span>  ์‹ ๊ณ ์ˆ˜ : {{์‹ ๊ณ ์ˆ˜}}</span>
</div>
</template>


<script>
export default {
  name: 'App',
  data(){
    return {
      ์‹ ๊ณ ์ˆ˜ : 0,
    }
  },
  methods: {
    notify(){
      this.์‹ ๊ณ ์ˆ˜++
    }
  }
}
</script>

<style>
</style>

๐Ÿ’ก ๋ฒ„ํŠผ์„ 3๊ฐœ ๋งŒ๋“ค์–ด์„œ ๊ฐ๊ฐ ์‹ ๊ณ ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”?

<template>
  <div>
  <h4>{{products[0]}}</h4>
  <p>50๋งŒ์›</p>
  <button @click="์‹ ๊ณ ์ˆ˜[0]++">ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ </button> 
  <span>  ์‹ ๊ณ ์ˆ˜ : {{์‹ ๊ณ ์ˆ˜[0]}}</span>
</div>
<div>
  <h4>{{products[1]}}</h4>
  <p>60๋งŒ์›</p>
  <button @click="์‹ ๊ณ ์ˆ˜[1]++">ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ </button> 
  <span>  ์‹ ๊ณ ์ˆ˜ : {{์‹ ๊ณ ์ˆ˜[1]}}</span>
</div>
<div>
  <h4>{{products[2]}}</h4>
  <p>70๋งŒ์›</p>
  <button @click="์‹ ๊ณ ์ˆ˜[2]++">ํ—ˆ์œ„๋งค๋ฌผ์‹ ๊ณ </button> 
  <span>  ์‹ ๊ณ ์ˆ˜ : {{์‹ ๊ณ ์ˆ˜[2]}}</span>
</div>
</template>


<script>
export default {
  name: 'App',
  data(){
    return {
      products : ['๊ธˆ๊ณก๋™ ์›๋ฃธ', '์ •์ž๋™ ์›๋ฃธ', '๊ตฌ๋ฏธ๋™ ์›๋ฃธ'],
      ์‹ ๊ณ ์ˆ˜ : [0,0,0],
    }
  },
  methods: {
    notify(){
      //this.์‹ ๊ณ ์ˆ˜ = this.์‹ ๊ณ ์ˆ˜ + 1; 
      this.์‹ ๊ณ ์ˆ˜++
    }
  }
}
</script>

<style>
</style>

์ถ”๊ฐ€
@click ๋ง๊ณ  ๋‹ค๋ฅธ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋“ค๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

  • @mouseover : ํด๋ฆญ์ด ์•„๋‹ˆ๋ผ ๋งˆ์šฐ์Šค๋ฅผ ์˜ฌ๋ ค๋‘์—ˆ์„ ๋•Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰
  • @input : ์ธํ’‹์— ๊ฐ’์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰

0๊ฐœ์˜ ๋Œ“๊ธ€