Vuejs——(5)v-on

简介: 资料来于官方文档: http://cn.vuejs.org/guide/events.html 本文是在官方文档的基础上,更加细致的说明,代码更多更全。 简单来说,更适合新手阅读 (二十二)方法处理器 ①v-on的标准用法 用于监听DOM事件,典型的就是v-on:cl

资料来于官方文档:

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

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

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


(二十二)方法处理器

v-on的标准用法

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

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

<button @click="test">点击</button>

 

methods: {
   
test: function (evt) {
       
console.log(evt);
    }
}

 

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

 

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

data: {
   
items: "test"
},
methods: {
   
test: function (evt) {
       
console.log(this.items);
        
console.log(evt);
    }
}

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

 

 

②内联语句处理器

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

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

 

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

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

mes的值是’a’

 

$event

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

 

使用Vue实例的变量

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

例如:

<div id="app">
    <
a href="http://www.baidu.com" @click="test(items, $event)">点击搜索age</a>
</
div>
<
script>
   
var test = {name: "test"};
   
var vm = new Vue({
       
el: '#app',
        
data: {
           
items: "test"
       
},
       
methods: {
           
test: function (msg, evt) {
               
console.log(msg);
               
evt.preventDefault();//阻止默认动作,比如这里是页面跳转
           
}
        }
    })
</script>

 

输出:testBUTTON

 

 

③事件修饰符(针对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来说,例如以下代码:

<div id="app">
    <
div @click.self="test" class="a">
        <
div class="b">
        </
div>
    </
div>
</
div>
<
script>
   
var test = {name: "test"};
   
var vm = new Vue({
       
el: '#app',
        
data: {
           
items: "test"
       
},
       
methods: {
           
test: function (evt) {
               
console.log(evt);
            }
        }
    })
</script>

 

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

 

 

④自定义按键别名:

规范:

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

 

示例:

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

 

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

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

目录
相关文章
|
6月前
|
缓存 JavaScript
Vuejs基础版II
Vuejs基础版II
|
6月前
|
JavaScript 前端开发 索引
Vuejs基础版III
Vuejs基础版III
|
4月前
|
JavaScript
【vue】 vue2 中使用 Tinymce 富文本编辑器
【vue】 vue2 中使用 Tinymce 富文本编辑器
596 6
|
6月前
|
JavaScript 前端开发 测试技术
Vuejs基础版V
Vuejs基础版V
|
6月前
|
存储 JavaScript 前端开发
Vuejs基础版I
Vuejs基础版I
|
资源调度 JavaScript 前端开发
vue3.3-TinyMCE:TinyMCE富文本编辑器基础使用
vue3.3-TinyMCE:TinyMCE富文本编辑器基础使用
456 0
|
JavaScript UED
富文本编辑器:Vue整合wangEditor
最近在做项目时,客户有个发布新闻动态的功能,具体页面内容让客户自己编写,所以要选择富文本编辑器,这样用户体验好一点。网上有很多的富文本编辑器, 因为项目的功能并不是很复杂,所以选择了wangEditor,界面简洁,使用起来也挺方便的;
233 0
|
设计模式 开发框架 JavaScript
vuejs系列四-双向绑定的实现
作为一名软件开发人员,了解常用的设计模式应该算是我们必备的技能之一了。如果你在编程中可以得心应手的使用这些,那你的代码肯定是满足了健壮性,可读性,易维护的范畴之内的。本章我们一起来了解下前端开发中常用的设计模式发布 订阅。
|
前端开发 JavaScript API
vuejs基础系列五-vue-router的使用
一个web应用路由定义的是否合理是判断这个应用是否合格的基础条件之一,在spa开发模式之前,前端开发基本不用考虑路由的定义这块基本都是后台在完成,但随着spa的推广前后端分离的大趋势下,前端路由定义的任务便落在的我们前端开发者身上。本节我们就来聊聊vue中vue-router的路由定义与配置。
|
JavaScript 前端开发
Vuejs提高篇(一)
Vuejs提高篇(一)
Vuejs提高篇(一)