Vue2——v-on

v-on—事件绑定

  1. 用来绑定事件
  2. 使用:v-on:click 缩写为:@click
<div class="app">
    <h3 v-text="msg"></h3>
    <input type="button" value="" v-on:click="updateMsg">
    <input type="button" value="" @click="updateInfo">
    <!-- 不打括号的话就会直接执行 -->
    <input type="button" value="" @click="updateSelf">
    <!-- 打了()但是里面不传参的话就会找不到,输出e为undefined就而且会以为找不到参而报错 -->
    <input type="button" value="" @click="updateSelf()">
    <!-- 传参接收当前的事件源 方便之后使用 -->
    <input type="button" value="" @click="updateSelf($event)">
    <!-- 累加 v-on事件函数中传入参数 -->
    <input type="button" value="num+5按钮" @click="dataNum(5,1,$event)">
    <input type="button" value="num+10按钮" @click="dataNum(10,2,$event)">
    <p v-cloak>num的值是:{{num}}</p>
</div>
const app = new Vue({
        el: '.app',
        data: {
            msg: '噗呲噗呲',
            num: 0
        },
        // 存放自定义函数/方法
        methods: {
            updateMsg() {
                console.log(this.msg);
                this.msg = '切克切克'
            },
            updateInfo() {
                this.msg = '嘿咻嘿咻'
            },
            updateSelf(e) {
                console.log(e);
                console.log(e.target);
                this.msg = '爱泥爱泥'
                e.target.style.backgroundColor = 'pink'
            },
            // v-on事件函数中传入参数
            dataNum(a, b, e) {
                console.log(a, b, e);
                // 在方法中调用另外一个方法
                this.addNum(a)
            },
            addNum(num1) {
                this.num += num1
            }
        }
    })

事件修饰符

在DOM中会有阻止事件发生、阻止事件冒泡的行为
但是Vue不推荐我们操作DOM
所以为了解决这个问题,Vue.js提供了事件修饰符

  • 修饰符:由点开头的指令后缀来表示的
<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a>

<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>

<!-- 修饰符可以串联   即阻止冒泡也阻止默认事件 -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>

按键修饰符(键盘事件)

当项目中需要键盘事件时,Vue允许v-on在监事键盘事件时添加按键修饰符
keydown按下触发 keyup按下抬起触发.
event.keycode按键编码

<div>
	<input type="text" @keyup="fn($event)">
</div>

常用按键修饰符

语法说明
.enterenter键
.tabtab键
.delete删除键(捕获“删除”和“退格”按键)
.esc取消键
.space空格键
.up
.down
.left
.right

keyCode按键编码

@keydown.enter=“函数名”

直接使用按键码做键盘事件触发

<input type="text" @keyup.97.98.99.100.101.102="fn">

自定义按键键码修饰符别名

在Vue中可以通过config.keyCodes自定义按键修饰符别名

<div id="app">
	// 预先定义了keyCode 116(即F5)的别名为f5,因此在蚊子输入框中按下F5,会触发prompt方法
	<input type="text" v-on:keydown.f5="prompt()">
</div>
<srcipt>
	Vue.config.keyCodes['f5'] = 116;
	let app = new Vue({
		el: '#app',
		methods:{
			prompt: function(){
				alert('我是F5')
			}
		}
	})
</srcipt>

注:keyCode的C是大写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值