1. 程式人生 > >二十九、例項事件

二十九、例項事件

                                例項事件


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <script type="text/javascript" src="../assets/js/vue.js"></script>
    <script type="text/javascript" src="../assets/js/jquery-3.1.1.min.js"></script>
    <title>Event Examples Demo</title>
</head>
    <body>
    <h1>Event Examples Demo</h1>
    <hr>
    <div id="app">
        {{num}}
        <p><button @click="add">加1</button></p>
    </div>


    <p><button onclick="reduce()">reduce</button></p>
    <p><button onclick="reduceOnce()">只減一次</button></p>
    <p><button onclick="off()">關閉reduce</button></p>
    <script type="text/javascript">
        var app=new Vue({
            el:'#app',
            data:{
                num:1
            },methods:{
                add:function(){
                    this.num++;
                }
            }
        })


        //$on 在構造器外部新增事件(相當於為構造器添加了一個事件)
        //reduce:呼叫時的事件名稱
        app.$on('reduce',function(){
            console.log('執行了reduce()');
            this.num--;
        });
        //外部呼叫內部事件
        //按鈕在作用域外部,可以利用$emit來執行構造器內部的方法
        function reduce(){
            app.$emit('reduce');
        }


        //$once執行一次的事件
        app.$once('reduceOnce',function(){
            console.log('只執行一次的方法');
            this.num--;
        });
        function reduceOnce(){
            app.$emit('reduceOnce');
        }


        //關閉事件
        function off(){
            app.$off('reduce');
        }
    </script>
</body>
</html>