본문 바로가기

Vue.js

Kossie Coder 04. 이벤트(Events)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="app">
        {{year}} <br>
        <button @click="plus">더하기</button> <!--v-on뒤에는 함수가 들어간다.-->
        <button v-on:click="minus">빼기</button>
        <form v-on:submit.prevent="submit"> <!--이벤트수식어:event.preventDefault or stopPropagatioin-->
            <input type="text">
            <button type="submit">Submit</button>
        </form> <!--form은 submit되면 page가 reload된다. 막아주는것:.prevent-->
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                year: 2018,
            },
            methods: {
                alert(){
                    alert('hi Kossie Coder')
                },
                plus(){
                    this.year = this.year + 1;
                },
                minus(){
                    this.year = this.year - 1;
                },
                submit(){
                    alert('submitted');
                    console.log('hello');
                },
            },
        })
    </script>
</body>
</html>

1/ v-on:을 @로 치환 가능.

2/ 이벤트수식어 사용 시, .prevent 이렇게 적으면 된다. submit.prevent로 적으면, Submit 후에도 페이지가 다시 reload되지 않는다.

3/ form태그는 submit시, 페이지가 다시 reload된다. (reload를 막기위해서는 .submit.prevent로 이벤트 수식어 적기.)

페이지가 다시 reload되지 않으면, year와 input에 적은 것들이 submit후에도 변경되지 않는다.

4/ @click 뒤에 함수는 methods라도 ()를 적지 않는다..!