当前位置: 首页 > Web前端 > JavaScript

【Vue3更新】Vue事件处理指南

时间:2023-03-26 21:32:48 JavaScript

作者:FernandoDoglio译者:前端小智来源:medium有梦想,有干货,微信搜索【大招天下】关注这位还在洗碗的洗碗智慧清晨的菜肴。本文已收录到GitHubhttps://github.com/qq449245884/xiaozhi,里面有完整的测试站点、资料和我的一线厂商访谈系列文章。Vue事件处理是每个Vue项目的必要方面。它用于捕获用户输入、共享数据和许多其他创造性的方式。在本文中,我介绍了基础知识并提供了一些用于处理事件的代码示例。它只包含我认为最有用的技巧/方法,要深入了解Vue可以做的一切,请查看Vue文档。基本事件处理使用v-on指令(简称@),我们可以监听DOM事件并运行处理程序方法或内联Javascript。//v-on指令//或向父组件发出自定义事件任何Web框架中的常见用例是期望子组件可以向其父组件发出事件,这也是双向数据绑定的原理。一个常见的例子是将数据从输入组件发送到父表单。根据我们使用的是OptionsAPI还是CompositionAPI,发出事件的语法会有所不同。在OptionsAPI中,我们可以简单调用this.$emit(eventName,payload),示例如下:exportdefault{methods:{handleUpdate:()=>{this.$emit('update','HelloWorld')}}}但是,CompositionAPI的使用方式有所不同。emit方法需要在Vue3提供的setup方法中使用。只要导入上下文对象,就可以使用与OptionsAPI相同的参数调用emit。exportdefault{setup(props,context){consthandleUpdate=()=>{context.emit('update','HelloWorld')}return{handleUpdate}}}当然我经常在项目中使用解构来使用:exportdefault{setup(props,{emit}){consthandleUpdate=()=>{emit('update','HelloWorld')}return{handleUpdate}}}完美!无论我们使用Options还是CompositionAPI,父组的监听方式都是一样的。首先,我们可以在模板中使用$event来访问传递的值。如果在组件的emit方法中传递了一个值,我们可以通过两种不同的方式捕获它,这取决于我们是使用内联还是使用方法。第一种是在模板中使用$event来访问传递的值。其次,使用一个方法来处理事件,那么传入的值会自动作为第一个参数传递给我们的方法。//...methods:{inputUpdated:(value)=>{console.log(value)//WORKSTOO}}Mousemodifier下面是我们可以在v-ondirective捕获的主要DOM鼠标事件列表:mousewheel='handleEvent'@mouseout='handleEvent'>InteractwithMe!

对于点击事件,我们还可以添加鼠标事件修饰符来限制哪个鼠标按键会触发我们的事件。一共有三个:左、右、中。Left
keyboardmodifier我们可以监听三个DOM键盘事件:通常,我们希望在某个键上检测这些事件,有两种方法可以做到这一点。keycodesVue有某些键的别名(enter,tab,delete,esc,space,up,down,left,right)某些项目的系统修饰符,我们可能只想在用户按下修改键时触发事件。修饰键类似于Command或shift。在Vue中,有四种系统修饰符。shiftaltctrlmeta(Mac上为CMD,Windows上为Windows键)这对于在Vue应用程序中创建自定义键盘快捷键之类的东西很有用。在Vue文档中,也是有一个exact修饰符来确保只有当我们指定的键被按下而没有其他键时才会触发事件。事件修饰符对于所有DOM事件,我们可以使用一些修饰符来改变它们的行为方式。无论是停止传播还是阻止默认操作,Vue都有两个内置的DOM事件修饰符。~完了,我在打扫卫生,我'我去干碗,骨头都白了~不可能实时部署代码后知道可能的bug。事后为了解决这些bug,花费了大量的时间在日志调试上。顺便推荐一个好用的bug监控工具Fundebug。原文:https://learue.co/2020/01/a-v...交流有梦想,有干货,微信搜索【大千世界】关注这位凌晨还在洗碗的洗碗智慧。本文GitHubhttps://github.com/qq44924588...已收录,有完整的测试站点、资料和我的一线厂商访谈系列文章。