当前位置: 首页 > article >正文

vue从入门到精通(七):事件处理

1,事件的基本使用

1.使用v-on:xxx或 @xxx 绑定事件,其中xxx是事件名

2.事件的回调需要配置在methods对象中,最终会在vm上

3.methods中配置的所数,不要用箭头函数!否则this就不是vm了

4.methods中配置的函数,都是被Vue所管理的函数,this的指向是vm 或 组件实例对象

5.@click="demo”和 @click="demo($event)”效果一致,但后者可以传参
<title>事件的基本使用</title>
<script src="../js/vue.js"></script>
<body>
<div id="root">
<h1>您好,{{name}}</h1>
<!--<button v-on:click="showInfo">点我提示信息</button>-->
<button @click="showInfo">点我提示信息(不传参)</button>
<button @click="showInfo2(66,$event)">点我提示信息2(传参)</button>
</div>
</body>
<script type="text/javascript">
const vm = new Vue({
el:'#root',
data:{
name:'张三'
methods :{
showInfo(e){
	console.log(e);
	console.log(e.target.innerText);
	//比处的this是vm 
	console.log(this === vm);
	console.log(this);
}

showInfo2(number,e){
	console.1og('你好同学!!',number);
	console.log(e.target.innerText);
}
</script>

2,事件修饰符

<body>
<!--
vue中的事件修饰符:
	1.prevent:阻止默认事件(常用);
	2.stop:阻止事件冒泡(常用);
	3.once:事件只触发一次(常用):
	4.capture:使用事件的捕获模式;
	5.self:只有event.target是当前操作的元素时才触发事件;
	6.passive:事件的默认行为立即执行,无需等待事件回调执行完毕;
-->
<div id="root">

<h1>您好,{{name}}</h1>

<!-- prevent:阻止默认事件(常用);-->
<a @click.prevent="showInfo" href="https://www.baidu.com/">点击提示信息</a>

<!-- 2.stop:阻止事件冒泡(常用);-->
<div @click="showInfo">
	<button @click.stop="showInfo">点击提示信息</button>
</div>


<!-- 3.once:事件只触发一次(常用):-->
<button @click.once="showInfo">点击提示信息</button>

</div>
</body>

<script type="text/javascript">
const vm = new vue({
el:'#root',
data:{
	name:'张三',
},
methods:{
	showInfo(e){
		//e.preventDefault();//阻止默认行为
		alert('你好同学!!');
	}
}
</script>

3,键盘事件

1.Vue中常用的按键别名: 	
	回车 =>enter 	
	删除 => delete(捕获“删除”和“退格”键) 	
	退出 =>esc 	
	空格 =>space 	
	换行 =>tab(特殊,必须配合keydown去使用) 	
	上=> up 	
	下=> down 	
	左 =>left 	
	右 =>right
	
2.vue未提供别名的按键,可以使用按键原始的key值去绑定,但注意要转为kebab-case(短横线命名)

3.系统修饰键(用法特殊):ctrl、alt、shift、meta 	
	(1).配合keyup使用:按下修饰键的同时,再按下其他键,随后释放其他键,事件才被触发。
	(2).配合keydown使用:正常触发事件。
	
4.也可以使用keycode去指定具体的按键(不推荐)

5.Vue.config.keyCodes.自定义键名 =键码,可以去定制按键别名
<!DOCTYPE html)
<html>
<head>
<meta charset="utf-8">
<title>事件的基本使用</title>
<script src="../js/vue.js"></script><body>
<div id="root">
<h1>您好,{{name}}</h1>
<input type="text" placeholder="按下回车提示输入" @keyup.enter="showInfo"/>

<!--<input type="text" placeholder="按下回车提示输入" @keyup.13="showInfo"/> -->

<input type="text”placeholder="按下回车提示输入" @keyup="showInfo"/>

</div>


<!--修饰符可以连续写-->
<a href="https://www.baidu.com" @click.prevent.stop="showInfo">点我提示信息</a>

<!--按下ctrl+y才触发事件-->
<input type="text" placeholder="按下回车提示输入" @keyup.ctrl.y="showInfo" ></div>


</body>
<script type="text/javascript">
Vue.config.keycodes.huiche=13
const vm = new Vue({
el:'#root',
data:{
	name:'张三'
}
methods:{
	showInfo(e){
		console.log(e.key,e.keycode)
		//if(e.keycode !== 13)return
		console.log(e.target.value);
	}
}
</script>
</html>

http://www.kler.cn/a/408943.html

相关文章:

  • C#构建一个简单的前馈神经网络
  • springboot 使用笔记
  • 搜索引擎中广泛使用的文档排序算法——BM25(Best Matching 25)
  • Vue 动态给 data 添加新属性深度解析:问题、原理与解决方案
  • 私有化部署视频平台EasyCVR宇视设备视频平台如何构建视频联网平台及升级视频转码业务?
  • HarmonyOs鸿蒙开发实战(20)=>一文学会基础使用组件导航Navigation
  • 全新三网话费余额查询API系统源码 Thinkphp全开源 附教程
  • 力扣力扣力:860柠檬水找零
  • 【机器学习监督学习】:从原理到实践,探索算法奥秘,揭示数据标注、模型训练与预测的全过程,助力人工智能技术应用与发展
  • Unity 内置枚举(Option Stencil)
  • 【AI技术赋能有限元分析应用实践】Abaqus、 Ansys、FEniCSx 有限元结合深度学习
  • Java爬虫与淘宝API接口:深度解析销量和商品详情数据获取
  • FMCJ456-14bit 2通道3/2.6/2GS/s ADC +16bit 2通道12.6GS/s DAC FMC AD/DA子卡
  • 网站渗透测试工具zap2docker-stable
  • H.264/H.265播放器EasyPlayer.js网页全终端安防视频流媒体播放器关于iOS不能系统全屏
  • 第425场周赛题解:最小正和子数组
  • Fakelocation Server服务器/专业版 Centos7
  • 图形渲染性能优化
  • python中lxml 库之 etree 使用详解
  • Sparrow系列拓展篇:消息队列和互斥锁等IPC机制的设计
  • Go 语言中的海勒姆定律
  • Jenkins-Git Parameter 插件实现指定版本的发布和回滚
  • 解释 Python 中的可变与不可变数据类型?
  • 框架学习07 - SpringMVC 地址映射
  • Sqlite: Java使用、sqlite-devel
  • 深度学习图像视觉 RKNN Toolkit2 部署 RK3588S边缘端 过程全记录