版权声明:出处http://blog.csdn.net/qq20004604

 

目录(?)[+]

 

资料来于官方文档:

http://cn.vuejs.org/guide/events.html

本文是在官方文档的基础上,更加细致的说明,代码更多更全。

简单来说,更适合新手阅读

 

 

(二十二)方法处理器

①v-on的标准用法

用于监听DOM事件,典型的就是v-on:click,处理的方法放在methods属性里

会默认传一个参数,代码如下:

  1. <button @click="test">点击</button>
  2. methods: {
  3. test: function (evt) {
  4. console.log(evt);
  5. }
  6. }

这里的evt,是标准的鼠标点击事件,类似jQuery的click事件的回调函数中的参数。

可以通过this来找到data属性里的值(或许也能找到其他几个),例如:

  1. data: {
  2. items: "test"
  3. },
  4. methods: {
  5. test: function (evt) {
  6. console.log(this.items);
  7. console.log(evt);
  8. }
  9. }

这里的this.items,就是data的items这个变量;

②内联语句处理器

给v-on事件传一个固定参数

  1. <button @click="test('a')">点击搜索age</button>

当这个时候,函数的第一个参数就不是鼠标点击事件了,而是字符串a

  1. test: function (mes) {
  2. console.log(mes);
  3. }

mes的值是’a’

$event

如果需要给他一个像上面一样的鼠标点击事件时,则使用$event作为参数(他和不传参数时的默认鼠标事件对象是相同的);

使用Vue实例的变量

如果需要传一个data属性里的值,则直接放属性名

例如:

  1. <div id="app">
  2. <a href="http://www.baidu.com" @click="test(items, $event)">点击搜索age</a>
  3. </div>
  4. <script>
  5. var test = {name: "test"};
  6. var vm = new Vue({
  7. el: '#app',
  8. data: {
  9. items: "test"
  10. },
  11. methods: {
  12. test: function (msg, evt) {
  13. console.log(msg);
  14. evt.preventDefault();//阻止默认动作,比如这里是页面跳转
  15. }
  16. }
  17. })
  18. </script>

输出:test和BUTTON

③事件修饰符(针对v-on)

修饰符

效果

备注

.prevent

阻止html元素的默认事件

类似evt.preventDefault()

.stop

阻止事件冒泡

keyup.数字

当该数字表示的按键弹起时

有别名

keyup.enter

回车

按下回车时

keyup.tab

Tab按钮

tab切入该input时

keyup.delete

del键

会导致原始的delete删除功能失效

keyup.esc

esc键

按下esc时

keyup.space

空格键

不会使空格功能失效(即按下空格时,既空格,又触发事件)

keyup.up

键盘方向键的上

上键同时会使光标到输入框的最左边

(焦点在输入框时才生效,按键弹起时生效,下同)

keyup.down

键盘方向键的下

到输入框的最后面

keyup.left

方向左键

光标左移

keyup.right

方向右键

光标右移

.self

当前元素本身(非子元素)时触发事件

类似冒泡的时候找最顶层,一般用于click之类的鼠标事件(1.0.16之后)

.capture

按照capture模式来处理

简单来说,根据我推测,是根据捕获顺序触发冒泡(原本模式是后捕获先冒泡,这个正好相反)(1.0.16之后)

对于.self来说,例如以下代码:

  1. <div id="app">
  2. <div @click.self="test" class="a">
  3. <div class="b">
  4. </div>
  5. </div>
  6. </div>
  7. <script>
  8. var test = {name: "test"};
  9. var vm = new Vue({
  10. el: '#app',
  11. data: {
  12. items: "test"
  13. },
  14. methods: {
  15. test: function (evt) {
  16. console.log(evt);
  17. }
  18. }
  19. })
  20. </script>

只有当点击到非div class=’b’的区域时,才会触发事件;

④自定义按键别名:

规范:

Vue.directive(“on”),keyCode.别名 = 按键码;

示例:

  1. Vue.directive("on").keyCode.z = 122;

这个指键盘码为122(小写z)的别名命名为z,当按键键盘的z键时(无论大小写),都会触发事件。

注意,这个要写在实例声明之后(推测是要含有该按键的template被创建后才有效)

Vuejs——v-on的更多相关文章

  1. 【vuejs小项目】一、脚手架搭建工作

    一.关于vuejs 这是一个MVVM的前端开发框架,model(数据).viewmode(通讯).view(视图),它吸取了reactjs和angularjs的长处,核心重点在于组件化的设计原则. 我 ...

  2. Vuejs使用笔记 --- component内部实现

    现在来系统地学习一下Vue(参考vue.js官方文档): Vue.js是一个构建数据驱动的web界面的库,其目标是实现响应的数据绑定和组合的试图组件. Vue.js拥抱数据驱动的视图概念,这意味着我们 ...

  3. VueJS搭建简单后台管理系统框架(一)环境搭建

    做这份笔记的时候,Vue.js还是1.0,10月份Vue已经升级到2.0,这边也进行相应的更新,用Vue2.0进行一个简单的环境搭建 饿了么也刚好开源了其基于Vue.js的UI框架element-ui ...

  4. 2016年,总结篇 之 VueJS 如何入门(一)

    接着 2016 年的总结,我们来看看 2016年 国内最火且没有之一的前端MVVM 框架 VueJs 虽然 到写文章的这个时间点,VueJs已经发布了 2.1.x 了, 但是对于很多 Vuejs 的初 ...

  5. vuejs学习笔记(1)--属性,事件绑定,ajax

    属性 v-for 类似于angular中的 ng-repeat ,用于重复生成html片段: <ul id="box"> <li v-for="(v, ...

  6. vuejs学习笔记(2)--属性,事件绑定,ajax

    属性 v-for 类似于angular中的 ng-repeat ,用于重复生成html片段: <ul id="box"> <li v-for="(v, ...

  7. 二、VueJs 填坑日记之基础项目构建

    在上一篇文章中,大致介绍了一下本系列博文以及学习vuejs我们需要了解的一些概念,希望大家认真阅读,所谓知己知彼,百战百胜,学习也一样,工欲善其事,必先利其器,要想学好vuejs,那前提的概念一定要熟 ...

  8. 七、VueJs 填坑日记之渲染一个列表

    在上一篇博文中,我们对vue组件有了一个简单的认识和大概的理解.在之前认识项目结构的时候,我们在/src目录中创建了一个components的文件夹,而今天就要用到了,这个文件夹的作用就是放置我们的自 ...

  9. VueJs笔记

    在使用Vuejs做开发的过程中,偶尔会遇到,动态给data添加一个属性这个属性确不能被动态监听到,只能用this.$set(prop,'prop',val)来强制监听,但是有些情况下又不需要这样操作. ...

  10. 2016年,总结篇 续 如何从 JQ 转到 VueJS 开发(一)

    接着 2016 年的总结,我们来看看 2016年 国内最火且没有之一的前端MVVM 框架 VueJs 虽然 到写文章的这个时间点,VueJs已经发布了 2.1.x 了, 但是对于很多 Vuejs 的初 ...

随机推荐

  1. 001---Hibernate简介( 开源O/R映射框架)

    该系列教程是使用hibernate3,hibernate4和3有区别(集成spring,使用等),请注意 001---Hibernate简介(开源O/R映射框架) ORM(Object Relatio ...

  2. 开涛spring3(9.1) - Spring的事务 之 9.1 数据库事务概述

    9.1  数据库事务概述 事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,这就是事务. 事务必需满足ACID(原子性.一致性.隔离性和持久性 ...

  3. 浅析Web缓存

    在前端开发中,性能一直都是被大家所重视的一点,然而判断一个网站的性能最直观的就是看网页打开的速度.其中提高网页反应速度的一个方式就是使用缓存.一个优秀的缓存策略可以缩短网页请求资源的距离,减少延迟,并 ...

  4. Apache许可翻译

    https://www.apache.org/licenses/LICENSE-2.0 Apache许可 2.0 2004.1 使用.复制和发行的术语和条件. 1 定义 "License&q ...

  5. PHP基础入门(一)---世界上最好用的编程语言

    作为一名程序员,我们应该都听过这样一个梗:PHP编程语言,是世界上最好用的编程语言~~~下面来和大家看一下,什么是PHP↓↓↓ PHP PHP又名超文本预处理器,是一种通用开源脚本语言.PHP主要适用 ...

  6. Win10无法连接远程桌面提示“你的凭据不工作”的三个解决方法

    Win10无法连接远程桌面提示"你的凭据不工作"的三个解决方法(转藏) 解决方法一:修改组策略 1.在"开始"窗口运行gpedit.msc,进入计算机配置-&g ...

  7. Swoole笔记(一)

    简介 Swoole是一个PHP扩展,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读 ...

  8. Nagios配置安装详解

    nagios.html :first-child{margin-top:0!important}img.plugin{box-shadow:0 1px 3px rgba(0,0,0,.1);borde ...

  9. 排序与检索【UVa10474】Where is the Marble?

    Where is the Marble?  DescriptionRaju and Meena love to play with Marbles. They have got a lot of ma ...

  10. 15.Three Sum

    思路 直接暴力,\(O(n^4 log(n))\),不出意外的超时了.. class Solution { public: vector<vector<int>> threeS ...