VUE(六)

点击下载word文档

VUE学习(六)

  1. 事件监听处理

    为了实现各种效果,我们总是不可避免的为一些元素绑定事件,例如,给一个按钮绑定一个点击事件,点击之后弹出窗口。

     

    1. 事件监听

        <!--可以用v-on指令监听DOM事件,并在触发时运行一些JavaScript代码。-->

        <!--test1示例-->

        <div id="example-1">

         <button v-on:click="counter += 1">Add 1</button>

         <p>The button above has been clicked {{ counter }} times.</p>

        </div>

        <br />

        <script>

            var example1 = new Vue({

             el: '#example-1',

             data: {

             counter: 0

             }

            })

        </script>

        运行结果:每点击一下add1之后下边就会加1

 

 

 

        <!--我们不可能把JavaScript代码写在v-on指令中所以我们可以把他提取成一个方法,在v-on指令中调用-->

        <div id="example-2">

         <!-- `greet`是在下面定义的方法名-->

         <button v-on:click="greet">Greet</button>

        </div>

        <script>

            var example2 = new Vue({

             el: '#example-2',

             data: {

             name: 'Vue.js'

             },

             //`methods`对象中定义方法

             methods: {

             greet: function (event) {

             // `this`在方法里指向当前Vue实例

             alert('Hello ' + this.name + '!')

             // `event`是原生DOM事件

             if (event) {

             alert(event.target.tagName)

             }

             }

             }

            })

        </script>

        运行结果:

        点击按钮先后弹出后两个弹窗

 

 

        <!--方法有了那我们还可以向方法内传参-->

        <div id="example-3">

         <button v-on:click="say('hi')">Say hi</button>

         <button v-on:click="say('what')">Say what</button>

        </div>

        <script>

            new Vue({

             el: '#example-3',

             methods: {

             say: function (message) {

             alert(message)

             }

             }

            })

        </script>

        运行结果:

 

 

 

 

  1. 修饰符

很多时候我们要对事件进行操作,例如阻止提交。我们可以调用调用 event.preventDefault()  event.stopPropagation()但是vue给我们提供了相应的修饰符

.stop

            .prevent

            .capture

            .self

            .once

        <!--阻止单击事件继续传播-->

        <a v-on:click.stop="doThis"></a>

        <!--提交事件不再重载页面-->

        <form v-on:submit.prevent="onSubmit"></form>

        <!--修饰符可以串联-->

        <a v-on:click.stop.prevent="doThat"></a>

        <!--只有修饰符-->

        <form v-on:submit.prevent></form>

        <!--添加事件监听器时使用事件捕获模式-->

        <!--即内部元素触发的事件先在此处处理,然后才交由内部元素自身进行处理-->

        <div v-on:click.capture="doThis">...</div>

        <!--只当在event.target是当前元素自身时触发处理函数-->

        <!--即事件不是从内部元素触发的-->

        <div v-on:click.self="doThat">...</div>

        <!--点击事件将只会触发一次-->

        <a v-on:click.once="doThis"></a>

        <!--使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,

            @click.prevent.self会阻止所有的点击,而@click.self.prevent只会阻止对元素自身的点击。-->

        

 

        


版权声明:本文为weixin_36795183原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。