源码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>事件的基本使用</title>
        <!-- 引入Vue -->
        <script type="text/javascript" src="../js/vue.js"></script>
    </head>
    <body>
        <!-- 
            事件的基本使用:
                1.使用v-on:xxx 或 @xxx 绑定事件,其中xxx是事件名;
                2.事件的回调需要配置在methods对象中,最终会在vm上;
                3.methods中配置的函数,不要用箭头函数!否则this就不是vm了;
                4.methods中配置的函数,都是被Vue所管理的函数,this的指向是vm 或 组件实例对象;
                5.@click="demo" 和 @click="demo($event)" 效果一致,但后者可以传参;
        -->
        <!-- 准备好一个容器-->
        <div id="root">
            <h2>欢迎来到{{name}}学习</h2>

            <!--  当我们点击 button按钮的时候,就会调用Vue实例中的 shoInfo()函数,不用传参的时候可以不加小括号() -->
            <button v-on:click="showInfo">点我提示信息</button>
            <!-- 将上面的 v-on: 简写为 @-->
            <button @click="showInfo1">点我提示信息1(不传参)</button>
            <!-- 目标:为调用方法传递一个数字66。为不搞丢event事件的同时,传递数字66,那么就需要在传参的时候同时把event传递进去。 -->
            <button @click="showInfo2($event,66)">点我提示信息2(传参)</button>
        </div>
    </body>

    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。

        const vm = new Vue({
            el:'#root',

            //注:只有写在 data{}中的属性,Vue才会为该属性写数据代理和数据劫持。
            data:{
                name:'尚硅谷',
            },

            //配置项methods
            methods:{
                //直接写方法名(){}
                //错误传参举例:
                //showInfo(a,b,c,d){
                //正确写法:需要传入 event事件对象. 
                showInfo(event){
                    //console.log(a,b,c,d)
                    console.log(event.target) //event.target 事件目标,此时就是调用showInfo()函数的按钮

                    console.log(event.target.innerText) //获取事件目标中的元素中的文字

                    console.log(this) //可以获取的是当前方法所在的配置项的 Vue实例 vm,即:此处this指的是 vm
                    //alert('同学你好')
                },

                showInfo1(event){
                    // console.log(event.target.innerText)
                    // console.log(this) //此处的this是vm
                    alert('同学你好!')
                },
                showInfo2(event,number){
                    console.log(event,number)
                    // console.log(event.target.innerText)
                    // console.log(this) //此处的this是vm
                    alert('同学你好!!')
                }
            }
        })
    </script>
</html>