【每日十分钟前端】Vue篇1,Vue事件绑定原理是什么

Vue 事件绑定机制详解 Vue 的事件绑定系统是其交互功能的核心,通过 v-on 指令(简写 @)实现。下面我将详细解释 Vue 事件绑定的各个方面。 阅读详情

1.原生dom事件的绑定,是通过addEventListener绑定给真实元素的;
2.组件事件绑定是通过自定义$on方法实现的。

 


绑定事件通过使用 v-on:事件名=函数名 完成的

1、原生标签dom的绑定

vue中绑定事件是直接绑定给真的dom元素的。
在解析得到VNode创建完毕后,绑定事件发生在开始挂载,创建dom之后的阶段。

1、开始挂载

VNode创建完毕,传入Vue.prototype._update这个函数,对VNode进行新旧对比,然后生成DOM挂载页面。

2、创建DOM

创建真实DOM,调用createElm方法,根据vnode生成DOM,并进行挂载,默认会调用invokeCreateHocks,处理模板上的相关数据。

3、处理数据

就是一个单纯遍历的过程,其中就包括处理DOM事件的函数,便是updateDOMListeners,传入add方法。

4、绑定DOM事件

主要是绑定事件和解绑事件:addEventListener和removeEventListener。

主要逻辑是:
(1)、新旧事件相同,替换旧事件
(2)、新事件不存在旧事件中,绑定新事件
(3)、旧事件不存在新事件中,解绑旧事件

2、组件DOM事件的绑定

想要在组件上绑定原生事件,需要加上.native修饰。

在解析时绑定在外壳vnode中,等到解析内部模板时,才会拿出来使用。

1、前面都一样,到createElm的时候,遇到的是组件,会转去解析组件,进入createComponent。
2、然后还是回到调用invokeCreateHooks的流程。

Vue之事件绑定(初识Vue事件) Vue 的事件绑定是指通过 Vue 提供的v-on指令来监听 DOM 事件,当特定事件被触发时执行相应的方法或表达式。事件绑定在 Vue 中是一种重要的交互机制,它使得开发者可以轻松地响应用户的交互行为,并进行相应的逻辑处理。当在 Vue 中使用事件绑定时,通常会使用v-on或简写形式来监听 DOM 事件,并在触发事件时执行相应的方法。监听事件:使用v-on指令来监听 DOM 事件,语法为v-on:event,其中event是要监听的事件名,例如clickmouseover等。也可以使用简写形式。 阅读详情

相关推荐

Vue事件处理原理及过程详解

Vue事件监听的方式貌似违背了关注点分离(separation of concern)的传统理念。实际上,所有的Vue.js事件处理方法和表达式都严格绑定在当前视图的ViewModel上,它不会导致维护上的困难,使用v-on有以下好处: 1、扫一眼HTML模板便能轻松定位在JS代码里对应的方法。 2、无须在JS里手动绑定事件,ViewModel代码可以是非常纯粹的逻辑,和DOM完全解耦,更易于测试。 3、当一个ViewModel被销毁时,所有的事件处理器都会自动被删除,无须担心自己如何清理它们。 事件处理步骤 1. 绑定监视 2. 事件修饰符 3. 按键修饰符 代码如下 <!DOCTY

Vue事件绑定原理

Vue事件绑定原理 Vue中通过v-on或其语法糖@指令来给元素绑定事件并且提供了事件修饰符,基本流程是进行模板编译生成AST,生成render函数后并执行得到VNode,VNode生成真实DOM节点或者组件时候使用addEventListener方法进行事件绑定。 描述 v-on与@用于绑定事件监听器,事件类型由参数指定,表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略,用在普通元素上时,只能监听原生DOM事件,用在自定义元素组件上时,也可以监听子组件触发的自定义事件,在监听原生DOM事

WindRunnerMax 4926

vue的事件绑定与方法详解

主要为大家详细介绍了vue的事件绑定与方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

原理篇---vue事件绑定

一、原生事件和组件事件的绑定 原生事件的绑定是通过addEventLister绑定给真实的元素的;组件事件绑定是通过vue自定义的$on实现的。如果要在组件上使用原生事件,需要加.native修饰符,这样就相当于在父组件中把子组件当做普通html标签,然后加上原生事件。 二、$on和$emit的实现 $on、$emit是基于订阅观察者模式的,维护一个事件中心,on的时候将事件按名称存在事件中心里,称之为订阅者,然后emit将对应的事件进行发布,去执行事件中心里的对应的监听器 1、vue先创建一个构造

weixin_43390711的博客 3100

【OpenCV】复杂场景下的高精度圆检测实战(附完整代码)

本文针对OpenCV霍夫圆检测在复杂场景下易失效的问题,提出了一套基于轮廓分析的高精度圆检测实战方案。通过图像预处理、轮廓发现及多轮几何筛选(面积、周长、椭圆拟合、多边形逼近),有效排除噪声和类圆干扰物,显著提升复杂场景下的检测鲁棒性,并附完整可调参的Python代码实现。

weixin_29095587的博客 200

实验室LIMS系统选型指南:从赛默飞到金现代,5大主流方案横评

本文深入分析了实验室LIMS系统选型的5大核心维度,包括架构选择、行业适配性、合规性设计、智能化程度和成本模型。通过对比赛默飞、金现代等主流厂商的优劣势,提供实战避坑策略,帮助实验室管理者做出明智决策,提升运营效率和合规水平。

plum99的博客 259

vue核心面试题:vue中的事件绑定原理

一、事件绑定有几种? 1.原生的事件绑定,原生 dom 事件的绑定,采用的是 addEventListener 实现。 2.组件的事件绑定,组件绑定事件采用的是 $on 方法 。 let compiler = require('vue-template-compiler'); // vue loader中的包 let r1 = compiler.compile('<div @click="fn()"></div>'); // 给普通标签绑定click事件 // 给组件绑定一个

王三六博客 5772

工业质检新利器:手把手教你用AD-DINOv3实现零样本缺陷检测(附MVTec AD实战)

本文详细介绍了AD-DINOv3框架在工业质检中的应用,通过零样本异常检测技术解决传统方法的标注成本高和泛化能力弱问题。文章包含技术原理解析、MVTec AD数据集实战部署、模型训练流程及工业部署优化技巧,帮助读者快速掌握这一创新技术。

seed的博客 764

HarmonyOS 6.1 实战:组件之间通过属性传递(Props Down)和事件回调(Events Up)进行通信,形成单向数据流

鸿蒙操作系统(HarmonyOS)作为面向全场景智慧生活的分布式操作系统,其应用开发框架ArkUI提供了一套全新的声明式UI开发范式。ArkTS作为ArkUI的开发语言,在TypeScript的基础上进行了深度扩展,引入了装饰器、状态管理、自定义组件等一系列核心能力,使得开发者能够以近乎自然语言的方式描述界面结构与交互逻辑。在传统的Android开发中,开发者需要通过XML布局文件定义界面结构,再通过Java/Kotlin代码在运行时查找视图、绑定数据、监听事件。这种命令式的开发模式要求开发者精确描述"怎么

2401_86049470的博客 220

智能车小白也能懂:手把手教你用LM358和工字电感搭建电磁循迹模块(附PCB设计避坑)

本文详细介绍了如何利用LM358运放和工字电感搭建智能车电磁循迹模块,从电感选型、电路设计到PCB布局和焊接调试,提供全流程实战指南。特别针对新手常见问题,如信号干扰、电路饱和等,给出具体解决方案和参数配置,帮助智能车比赛爱好者快速掌握电磁循迹技术。

weixin_30307921的博客 401

Python爬虫模拟登录京东并抓取商品数据

京东是一个拥有海量商品数据的电子商务平台。作为爬虫开发者,能够抓取这些数据将为我们提供很多机会进行数据分析、价格预测、市场调研等工作。然而,京东的反爬虫机制非常强大,包括但不限于验证码、动态加载页面、IP封禁等。因此,想要通过Python爬虫抓取京东的数据并不容易。在本文中,我们将从分析京东的登录机制开始,逐步介绍如何使用Python中的各种工具,如。

2201_76125261的博客 1828

Vue的双向绑定原理

Vue中的双向绑定原理

太阳与星辰的博客 1842

算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

【代码】算法 | 植物根茎生长优化算法(PRGO)原理、公式及应用,matlab代码(2025最强优化算法)

尘世冰封的专栏 1017

Vue中事件绑定的原理简述

Vue的事件分为2种,一种是原生事件绑定,还有一种是组件的事件绑定。 1. 原生dom事件的绑定,采用的是addEventListener实现; 2. 组件绑定事件采用的是$on方法(可用$event触发)。 原生dom事件的绑定,采用的是addEventListener实现; 组件绑定事件采用的是on方法(可用on方法(可用on方法(可用event触发)。 ...

M_Jin的博客 2564

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第10套模块A:网络构建 & (五)网络运维配置+(六)SDN网络配置-命令配置

【赛题解析&命令脚本配置】2023年全国职业院校技能大赛GZ073网络系统管理赛项赛题第10套模块A:网络构建 & (五)网络运维配置+(六)SDN网络配置-命令配置

君逍遥o 809

C语言实现惯导更新算法(机械编排)

四元数可用于描述刚体转动或姿态变换,与方向余弦阵相比,表达简洁。四元数是一个包含四个元素的列向量,列向量的第一个元素表示刚体围绕旋转轴转过的角度大小,其余3个元素代表了旋转轴的方向。

十八与她的博客 1730

vue--事件--事件绑定,事件修饰符,

事件绑定 可以用 v-on 指令监听DOM 事件,并在触发时运行一些 JavaScript 代码。v-on 还可以接收一个需要调用的方法名称。 <button v-on:click="greet">Greet</button> methods: { greet: function (event) { if (event) { alert(event.target.tagName) } // `event` 是原生 DOM 事件 ...

cmy741741的博客 763

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Vue 事件绑定机制

Vue 将事件系统拆分为原生 DOM 事件与自定义组件事件两套正交实现,前者对接浏览器事件循环,后者基于发布–订阅模型。本文以 v-on(缩写 @)为线索,结合运行时源码路径,给出端到端的实现剖析。

前端小巷子的博客 640

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

vue事件绑定

Vue提供了v-on指令来监听DOM事件,在事件绑定上,类似原生JavaScript的onclick事件写法,也是在HTML上进行监听。

leva的博客 1951

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Vue基础知识总结 6:vue双向绑定原理

需求分析: 通过输入框,双向绑定文本框显示。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="app"> <cpn :number1="num1" :number2="num2"/> &lt

学Java,找哪吒 1万+

Vue中事件绑定的原理

之前我搜这个原理的时候,好多文章,都只写了俩句话: 原生事件绑定是通过addEventListener绑定给真实元素的。 组件事件绑定是通过Vue自定义的key$on实现的。 那具体是怎么实现的呢, 没有说? 就现在具体看一下。 // 原生事件绑定 <div @click="fn()"></div> // 组件绑定 <my-component @click.native="fn" @click="fn1"></my- component> 原理: 事件

Beth__hui的博客 1494

vue双向绑定原理

MVVM是Model-View-ViewModel的简写,即模型-视图-视图模型,MVVM是双向、自动的,也就是数据发生变化自动同步视图,视图发生变化自动同步数据。

qq_23858785的博客 3948

vue的双向绑定原理及实现

Vue双向绑定原理及实现

baidu_39009276的博客 3869

浅谈Vue的双向绑定原理——数据劫持+(订阅者/发布者)模式

一、访问器属性 关于Vue的双向绑定,核心是Object.defineProperty()方法, 语法: Object.defineProperty(obj, prop, descriptor) 其中: obj 要在其上定义属性的对象。 prop 要定义或修改的属性的名称。 descriptor 将被定义或修改的属性描述符。 其实,简单点来说,就是通过此方法来定义一个值。 调用,使用到了get方法, 赋值,使用到了set方法。 ...

王春燕的博客 3525

2020大厂前端面试之vue专题(二)

11.Vue中模板编译原理 将 template 转化成 render 函数 function baseCompile( template: string, options: CompilerOptions ) { const ast = parse(template.trim(), options) // 1.将模板转化成ast语法树 if (options.optimize !== false) { // 2.优化树

qq_40665861的博客 1037
上一篇: 【每日十分钟前端】基础篇5,HTML和DOM的关系、id选择器和class选择器、JS中类型转换的规则
下一篇: 【每日十分钟前端】基础篇6,在HTML页面上展示 ‘<div></div>’字符串、1px边框变粗解决怎么解决,1px边框为什么会变粗、break与continue
黎明初时
博客等级 码龄13年 47粉丝 53原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值