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被创建后才有效)

目录
相关文章
|
4天前
|
搜索推荐 编译器 Linux
一个可用于企业开发及通用跨平台的Makefile文件
一款适用于企业级开发的通用跨平台Makefile,支持C/C++混合编译、多目标输出(可执行文件、静态/动态库)、Release/Debug版本管理。配置简洁,仅需修改带`MF_CONFIGURE_`前缀的变量,支持脚本化配置与子Makefile管理,具备完善日志、错误提示和跨平台兼容性,附详细文档与示例,便于学习与集成。
290 116
|
19天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
6天前
|
数据采集 人工智能 自然语言处理
Meta SAM3开源:让图像分割,听懂你的话
Meta发布并开源SAM 3,首个支持文本或视觉提示的统一图像视频分割模型,可精准分割“红色条纹伞”等开放词汇概念,覆盖400万独特概念,性能达人类水平75%–80%,推动视觉分割新突破。
412 38
Meta SAM3开源:让图像分割,听懂你的话
|
13天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
670 220
|
1天前
|
Windows
dll错误修复 ,可指定下载dll,regsvr32等
dll错误修复 ,可指定下载dll,regsvr32等
132 95
|
11天前
|
人工智能 移动开发 自然语言处理
2025最新HTML静态网页制作工具推荐:10款免费在线生成器小白也能5分钟上手
晓猛团队精选2025年10款真正免费、无需编程的在线HTML建站工具,涵盖AI生成、拖拽编辑、设计稿转代码等多种类型,均支持浏览器直接使用、快速出图与文件导出,特别适合零基础用户快速搭建个人网站、落地页或企业官网。
1665 158
|
存储 人工智能 监控
从代码生成到自主决策:打造一个Coding驱动的“自我编程”Agent
本文介绍了一种基于LLM的“自我编程”Agent系统,通过代码驱动实现复杂逻辑。该Agent以Python为执行引擎,结合Py4j实现Java与Python交互,支持多工具调用、记忆分层与上下文工程,具备感知、认知、表达、自我评估等能力模块,目标是打造可进化的“1.5线”智能助手。
913 61