Directives지시문: v-on
2021. 3. 2. 18:07ㆍ프론트엔드/Vue.js
반응형
v-on
v-on:이벤트 타입 = @이벤트타입
<button v-on:click="counter++">+1</button>
<button @click="counter++">+1</button>
methods: 함수를 사용했을 때
<div id="app">
<button v-on:click="greeting">인사</button>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var myapp=new Vue({
el:"#app",
methods:{
// greeting:function(e){
// alert("hello")
// }
greeting(e){
alert("hi~~")
}
}
})
</script>
methods 내에서 function 생략 가능
v-on: 내에서 매개변수 생략 가능(매개변수가 없는 경우)
마우스이벤트
click, mouseover, dblclick
<div id="app">
<h1 v-if="visible">title</h1>
<button @click="visible = !visible">click</button>
<button @mouseover="overFun">over</button>
<button @dblclick="alert('double clicked')">dblClick</button>
</div>
<!-- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
new Vue({
el:"#app",
data:{
visible:true
},
methods:{
overFun:function(e){
console.log(e.type)
}
}
})
</script>
이벤트 수정자
v-on:이벤트.수정자
<a href="#" v-on:click.stop=""></a>
<form action="" v-on:submit.prevent=""></form>
<div id="app">
<input type="text" v-model="inputA" @keyup.enter="addA">
<ul>
<li v-for="a in animals"> {{a}} </li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
new Vue({
el: "#app",
data: {
inputA: "",
animals: ["lion", "eagle"]
},
methods: {
addA: function() {
this.animals.push(this.inputA);
this.inputA = "";
}
}
})
</script>
응용
filter
<div id="app">
<h1>filter</h1>
<input type="text" v-model="searchF" v-on:keyup="search(searchF)">
<ul>
<li v-for="f in fruitsFilter">{{f}}</li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
el: "#app",
data: {
//input과 연결할 변수
searchF: "",
fruits: ["apple", "banana", "grapes", "mango", "orange"],
fruitsFilter: []
},
created: function() {
//뷰 인스턴스가 생성되면서 바로 실행되는 명령어
this.fruitsFilter = this.fruits.slice();
},
methods: {
//함수 호출에 의해서 실행되는 함수
search: function(item) {
this.fruitsFilter = this.fruits.filter(x => {
if(x.indexOf(item) != -1){
return true;
}
})
}
}
})
</script>
반응형
'프론트엔드 > Vue.js' 카테고리의 다른 글
Vue.js : 정의, 장점, vue instance, 데이터바인딩, directives(지시문) (0) | 2021.02.25 |
---|