Vue学习的第八天

事件处理


监听事件

可以用v-on指令监听DOM事件

<div id="example-1">

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

</div>

var vm = new Vue({

     el:"#example-1",

     data:{

          counter:0

     }

})

事件处理方法


v-on可以接收一个需要调用的方法名称

<div id="example-2">

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

</div>

var vm = new Vue({

    el:"#example-2",

    data:{

          name:"Vue.js"

    },

    methods:{

           greet:function(event){

               alert("Hello" + this.name + "!");

               if(event){

                     alert(event.target.tagName)

               }

          }

     }

})

也可以用JavaScript直接调用

vm.greet();

内联处理器中的方法


除了直接绑定到一个方法,也可以在内联JavaScript语句中调用方法

<div id="example-3">

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

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

</div>

var vm = new Vue({

     el:"#example-3",

     data:{},

     methods:{

          say:function(message){

               alert(message)

          }

    }

})

事件修饰符


在事件处理程序中调用 event.preventDefault() 或 event.stopPropagation() 是非常常见的需求。尽管我们可以在方法中轻松实现这点,但更好的方式是:方法只有纯粹的数据逻辑,而不是去处理 DOM 事件细节。

为了解决这个问题,Vue.js 为 v-on 提供了事件修饰符。之前提过,修饰符是由点开头的指令后缀来表示的。

.stop

.prevent

.capture

.self

.once

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

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

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

<form v-on:click.stop.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>

使用修饰符时,顺序很重要;相应的代码会以同样的顺序产生。因此,用 @click.prevent.self 会阻止所有的点击,而 @click.self.prevent 只会阻止对元素自身的点击。

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

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

按键修饰符


在监听键盘事件时,我们经常需要检查常见的键值。Vue 允许为 v-on 在监听键盘事件时添加按键修饰符,全部的按键别名

.enter

.tab

.delete

.esc

.space

.up

.down

.left

.right

系统修饰键


可以用如下修饰符来实现仅在按下相应按键时才触发鼠标或键盘事件的监听器。

.ctrl

.alt

.shift

.meta

.exact 修饰符允许你控制由精确的系统修饰符组合触发的事件。

#鼠标按钮修饰符

.left

.right

.middle

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,074评论 0 29
  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 11,074评论 4 129
  • Vue 实例 属性和方法 每个 Vue 实例都会代理其 data 对象里所有的属性:var data = { a:...
    云之外阅读 2,241评论 0 6
  • vue.js官网教程学习笔记和学习摘要 起步 安装 一个简单的方法,直接把一个vue.js引入你的HTML页面中,...
    恰皮阅读 3,400评论 2 22
  • 下载安装搭建环境 可以选npm安装,或者简单下载一个开发版的vue.js文件 浏览器打开加载有vue的文档时,控制...
    冥冥2017阅读 6,081评论 0 42