首先,看到我们的标题:
JavaScript中的钩子(钩子机制钩子函数hook) 是什么?
我们前端的JavaScript中,经常提到钩子
,毋庸置疑,那这个东西肯定也尤为重要。
但是有点前端入门不久,很疑惑,这个钩子到底是什么呢?
首先,我们的钩子,钩子机制,钩子函数,hook,都是同一个概念。
对于Windows系统,它是建立在事件驱动机制上的,说白了就是整个系统都是通过消息传递实现的。hook(钩子)是一种特殊的消息处理机制,它可以监视系统或者进程中的各种事件消息,截获发往目标窗口的消息并进行处理。
用来监视系统中特定事件的发生,完成特定功能,如屏幕取词,监视日志,截获键盘、鼠标输入等等。
百度给出的解释是这样的:
钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。
是不是觉得还是不明白,很显然,这个解释非常官方,我们要用现实思维去描述。
说白了,钩子函数是在一个事件触发的时候,在系统级捕获到了他,然后做一些操作。一段用以处理系统消息的程序,用以处理系统消息的程序,是说钩子函数是用于处理系统消息的
两个特点:
回调函数是你留了个函数,但是这个函数不是立即执行,而是绑定了个事件。当事件触发时,自动执行函数,而非必须执行。
概念:作为参数传给另一个 JavaScript 函数的函数。 回调函数确保一段代码执行完毕之后再执行另一段代码的方式。
如果还是不理解,请看:
钩子函数是好比找了个代理,监视事件是否发生,如果发生了这个代理就执行你的事件处理方法;在这个过程中,代理就是钩子函数。
或者,你可以认为钩子函数就是回调函数。
钩子函数一般是在某个框架里面的叫法,是这个框架在生命周期的某个阶段触发的回调函数。
比如Vue/React
里面就存在生命周期函数。
看Vue
框架里面自带的一段代码,无论我写不写它就在那里,但当我调用它以后,它就会执行我参数的内容。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有