什么是钩子函数?(这是系统中的,可以不看这段)

钩子函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。《来自百度百科

是不是读不懂,那就对了,它太官方了,那就把它语义化些:

钩子函数是在一个事件触发的时候,在系统级捕获到了他,然后做一些操作。一段用以处理系统消息的程序,用以处理系统消息的程序,是说钩子函数是用于处理系统消息的

  • 是个函数,在系统消息触发时被系统调用
  • 不是用户自己触发的

什么是钩子函数?(javascript 中的)

在此之前你需要了解一下 回调函数

回调函数是你留个处理方法给事件,事件发生了以后会自动执行你留下调处理方法

钩子函数是好比找了个代理,监视事件是否发生,如果发生了这个代理就执行你的事件处理方法;在这个过程中,代理就是钩子函数

  • 在某种意义上,回调函数做的处理过程跟钩子函数中要调用调方法一样
  • 但是有一点: 钩子函数一般是由事件发生者提供的。直白了说,它留下一个钩子,这个钩子的作用就是钩住你的回调方法

⬇⬇我还是不懂⬇⬇

我直白的说:

钩子函数就是回调函数。
钩子函数一般是在某个框架里面的叫法,是这个框架在生命周期的某个阶段触发的回调函数。

你如果了解React和Vue,里面有生命周期函数,说的是一个页面不同时期执行的函数,那些都是钩子函数

代码展示:(vue框架)

<div id="#root"></div>

    <script>
    
        new Vue({  //new 一个实例对象
            el:"#root",
            data:{
                str:1,
            },
            mounted(){    //当我的实例挂载完毕之后 会执行  这个就是钩子函数
                console.log(123)
            }
        })

    </script>

重点:
这个 mounted()不是我写的,我只是用了 vue.js 这个框架,它里面自带的,无论我写不写它就在那里,但当我调用它以后,它就会执行我参数的内容