(1)事件监听

v-on 指令监听 DOM 事件,并在触发时运行JS代码

    <div class="event_area">
{{message}}
<button v-on:click="show_info">按钮</button>
</div>
<script type="text/javascript">
var event_area = new Vue({
el:".event_area",
data:{
message:'展示信息'
},
methods:{
show_info:function(){
alert(this.message);
}
}
})
</script>

案例2:计算按钮点击次数

监听事件

    <div class="event_area">
您点击了{{num}}次按钮
<button v-on:click="num++">按钮</button>
</div>
<script type="text/javascript">
var event_area = new Vue({
el:".event_area",
data:{
num:0
}
})
</script>

然而许多事件处理逻辑会更为复杂,所以直接把 JavaScript 代码写在 v-on 指令中是不可行的。因此 v-on 还可以接收一个需要调用的方法名称。如下所示,调用add_num方法

解析: `this`在方法里指向当前 Vue 实例

    <div class="event_area">
您点击了{{num}}次按钮
<button v-on:click="add_num">按钮</button>
</div>
<script type="text/javascript">
var event_area = new Vue({
el:".event_area",
data:{
num:0
},
methods:{
add_num:function(){
return this.num++;
}
}
})
</script>

(2)内联处理器中的方法

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

<div id="example-3">
<button v-on:click="say('hi')">Say hi</button>
<button v-on:click="say('what')">Say what</button>
</div>
new Vue({
el: '#example-3',
methods: {
say: function (message) {
alert(message)
}
}
})

(3)事件修饰符

①表单事件:

    <form id="ti_jiao" v-on:submit="onSubmit">
<input type="text"><br />
<input type="submit" value="提交">
</form>
<script type="text/javascript">
var ti_jiao = new Vue({
el:"#ti_jiao",
methods:{
onSubmit:function(e){
e.preventDefault();
alert("弹框")
}
}
})
</script>

阻止表单默认事件,即数据提交页面刷新。

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

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

.stop
.prevent
.capture
.self
.once
.passive
<!-- 阻止单击事件继续传播 -->
<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>

②修饰符顺序

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

因此,用 v-on:click.prevent.self 会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。

③一次性修饰符

<!-- 点击事件将只会触发一次 -->
<input type="button" name="btn" v-on:click.once="prompt" value="弹框">
methods:{
prompt:function(){
alert("弹框");
}
}

结果:点击按钮后,只能弹框一次。

④被动修饰符

Vue 还对应 addEventListener 中的 passive 选项提供了 .passive 修饰符

<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 -->
<!-- 而不会等待 `onScroll` 完成 -->
<!-- 这其中包含 `event.preventDefault()` 的情况 -->
<div v-on:scroll.passive="onScroll">...</div>

.passive 修饰符能够有效提升移动端的性能

(4)按键修饰符(待验证

(5)系统修饰符(待验证

.

最新文章

  1. [转] X-RIME: 基于Hadoop的开源大规模社交网络分析工具
  2. LeetCode Dungeon Game
  3. hdu----(1528)Card Game Cheater(最大匹配/贪心)
  4. [Objective-c 基础 - 3.2] ARC
  5. xcode5.1 armv7 armv7s arm64 类型, 区分, 概念等
  6. Linux下高效编写Shell——shell特殊字符汇总
  7. Asp.net Mvc4 基于Authorize实现的模块访问权限
  8. mongodb授权登录
  9. 正则表达式(c#)
  10. Server的Transfer和Response的Redirect
  11. 支持向量机(SVM)之数学公式详细推导
  12. HangFire快速入门 分布式后端作业调度框架服务
  13. SpringMVC参数绑定总结
  14. CRC类(处理ITU表)
  15. shell脚本输出带颜色字体
  16. Java并发编程--6.Exchanger线程间交换数据
  17. Java开篇
  18. 2017/11/6 Leetcode 日记
  19. Linux查找含有某字符串的文本文件
  20. 使用mybatis-generator插件结合tk.mybatis自动生成mapper二三事

热门文章

  1. Android自己定义dialog中的EditText无法弹出键盘的解决
  2. HDU 5976 Detachment 【贪心】 (2016ACM/ICPC亚洲区大连站)
  3. 洛谷P1155 双栈排序——思路题
  4. Pycharm初始创建项目和环境搭建(解决aconda库文件引入不全等问题)
  5. jQuery setInterval倒计时精确到毫秒
  6. Java实现日期时间对象的使用
  7. ASP.Net 知识点总结(五)
  8. Javascript 排序算法(转)
  9. Visual Studio 相关
  10. JAVAEE 是什么,如何获取各种规范jar包及各种规范的jar包源码