v-on

想要实现点击按钮后执行事件
使用v-on:click绑定事件,后面跟事件名

<div id="root">
        <h2>欢迎来到{{name}}学习</h2>
        <button v-on:click="showInfo1">点我提示信息</button>
    </div>

然后在Vue实例中写下methods方法,本例中弹出信息框

<script type="text/javascript">
      new Vue({
        el:"#root",
        data:{
            name:'特曼博客'
        },
        methods:{
            showInfo1(event){
                alert("你好")
                //console.log(this) //此处的this是vm
            }
        }
      })
</script>

简写

v-on:click的简写形式是@click

<button @click="showInfo1">点我提示信息</button>

传参

我们也可以在执行事件的时候传入一个参数
在事件名后跟括号

<body>
    <div id="root">
        <h2>欢迎来到{{name}}学习</h2>
        <button @click="showInfo2(66,$event)">点我提示信息2(传参)</button> <!--简写形式-->
    </div>
</body>

<script type="text/javascript">



      new Vue({
        el:"#root",
        data:{
            name:'特曼博客'
        },
        methods:{
            showInfo2(number,event){
                console.log(number)
                alert("你好!!")

            }


        }
      })
</script>

所有代码

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <title>07事件处理</title>
        <script type="text/javascript" src="../js/vue.js"> </script><!-- 引入Vue-->

    </head>

<body>
    <div id="root">
        <h2>欢迎来到{{name}}学习</h2>
        <button v-on:click="showInfo1">点我提示信息(不传参)</button>
        <button @click="showInfo2(66,$event)">点我提示信息2(传参)</button> <!--简写形式-->
    </div>
</body>

<script type="text/javascript">



      new Vue({
        el:"#root",
        data:{
            name:'特曼博客'
        },
        methods:{
            showInfo1(event){
                alert("你好")
                console.log(this) //此处的this是vm
            },
            showInfo2(number,event){
                console.log(number)
                alert("你好!!")

            }


        }
      })
</script>


</html>

总结

事件的基本使用:

  1. 使用v-on:xxx 或 @xxx 绑定事件 其中xxx是事件名
  2. 事件的回调需要配置在methods对象中,最终会在vm上
  3. methods中配置的函数,不要用箭头函数,否则this就不是vm了
  4. methods中配置的函数,都是被vue所管理的函数,this的指向是vm 或组件实例对象
  5. @click="demo" 和 @click="demo($event)" 效果一致,但后者可以传参
最后修改:2022 年 07 月 31 日
如果觉得我的文章对你有用,请随意赞赏