본문 바로가기

프론트앤드/VueJS

[Vue.js] VueJS 강의 #4 - HTML 이벤트 바인딩

반응형

참조된 서적 : Vue.js 코딩 공작소 (길벗) - 사진은 생략, 앞에 보셨으니 다들 아실겁니다.

1. HTML에 이벤트 바인딩 (이벤트 발생)

 이번 강의는 이벤트를 발생시키는 것인데, 일반적인 javascript 에서는 주로 onClick="function()" 을 사용하게 됩니다.

VueJS에서는 Vue 문법을 따라해야하는데, 2가지 방법이 있습니다. 편한 방법으로 정해서 통일시켜서 사용하면 됩니다.

v-on:click="function" 또는 @click="function" 으로 사용할 수 있습니다. 다시 말하면, v-on@로 작성할 수 있다고 보면 됩니다.

 

- EventBinding.html

<html>
	<head>
		<title>dev-box Tistory, 개발자 보물상자</title>
		<script src="https://unpkg.com/vue"></script>
		<style>
			.item {
				border: 1px black solid;
			}
		</style>
	</head>
	<body>
		<div id="dev-box">
			<h1>dev-box tistory</h1>
			
			<div class="item">
				<h3 v-text="product.title" v-on:mousedown="mouseDown"></h3>
				<input type="text" v-on:keyup="keyDown">
				<button v-on:click="addCart">장바구니 담기</button>
			</div>
		</div>
		<script src="./04.eventBinding.js"></script>
	</body>
</html>

v-on 에 가능한 이벤트들은 위 예제에서 사용하고 있는 mousedown, keyup, click를 포함Javascript에서 사용가능한 모든 이벤트를 여기서도 동일하게 사용할 수 있습니다.

 

h3 태그에 제목이 나오는 곳을 마우스를 누를 때 mouseDown 함수가 실행되고,

input 태그에 글자를 입력하기 위해 키보드를 누르는 순간에 keyDown 함수가 실행되고,

button 태그를 클릭할 때 addCart 함수가 실행됩니다.

 

- EventBinding.js

var websotre = new Vue({
    el: '#dev-box',
    data: {
        sitename: "dev-box Tistory, 개발자 보물상자",
        product: {
            id: 1001,
            title: "VueJS 강의입니다."
        },
        cart: []
    },
    methods: {
        addCart: function(){
            this.cart.push(this.product.id);
            console.log(this.cart);
        },
        mouseDown: function(){
            alert("Mouse Click : Down");
        },
        keyDown: function(e){
            console.log("key : " +e.key);
            console.log("code : " +e.keyCode);
        }
    }
});

 우리가 클릭 혹은 키보드를 누르는 이벤트를 가지고 예를 들었습니다. HTML에 있는 함수를 가지고 Javascript를 확인해봅니다. 아래쪽에 보이는 methods 에 들어가는 함수들이 HTML 에서 실행될 수 있는 함수 목록입니다. 단, 여기서 주의할 점은 methods에 선언된 함수들은 #dev-box 라는 영역 안에서 실행되는 이벤트에만 적용됩니다.

 

addCart 함수 실행은 HTML에서 버튼을 클릭할 때 였는데, 버튼을 클릭하면 클릭한 현재 요소의 정보를 cart 라는 배열에 저장하고, cart 배열에 담겨진 내용을 보여줍니다.

 

mouseDown 함수 실행은 HTML에서 h태그에 마우스를 누를 때 였는데, 마우스를 클릭할 때 팝업창이 나타납니다.

 

keyDown 함수 실행은 HTML에서 text form 에 키보드를 누를 때 였는데, 어떤 키를 눌렀는지와 그에 맞는 키코드를 보여줍니다.

 

- 결과

 

반응형