기존에 onClick=""
으로 작성했던 js와 달리
v-on:Click=""
나 @click=""
으로 작성한다.
이벤트 | 기능 |
---|---|
click | 말그대로 클릭 |
mouseover | 해당 위치에 마우스를 댔을 때 |
등 여러개가 있지만 굳이 정리 찾아보지말고 Ctrl+SpaceBar
로 직접 써보자
버튼을 누르면 변수를 찾고 계산을 해서 그 값을 HTML에 반영하는 기존 JS의 방식과 달리 vue는 클릭 만으로 반영된다.
그러니까 @click=""의 안에는 count++
나 count +=1
, count = count+1
을 입력해주면 된다.(데이터를 쓴다고 {{}} 사용X)
script에서 함수를 만들어서 쓰면 된다
method : { 함수(){} }
의 위치<script> export default { name: 'App', data(){ return { } }, methods : { 함수 내용 } components: { } } </script>
회원별 클릭 카운터를 만들어보자
<template>
<div v-for="(i, j) in users" :key="i">
<h4>{{i}}</h4>
<button @click="ben(j)"></button> <span>신고수 : {{count[j]}}</span>
</div>
</template>
<script>
export default {
name: 'App',
data(){
return {
count: [0, 0, 0],
users : ['user1', 'user2', 'user3']
}
},
methods :{
ben(i){
this.count[i] +=1;
}
},
components: {
}
}
</script>
<style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
.menu {
background-color: darkslateblue;
padding : 15px;
border-radius: 5ps;
}
.menu a {
color : white;
padding : 10px;
}
</style>
해결
- vue의 함수 안에서 데이터를 사용할 때는
this.????
로 써야한다
참고