钩子函数是 JavaScript 中的一种编程概念,又称为回调函数或事件处理函数。它是一种函数,可以在某个特定的事件发生时被触发执行,以便我们可以在特定的时刻对事件进行处理。
在 JavaScript 中,钩子函数通常是作为参数传递给其他函数的,当这些函数执行时,它们会在特定的时刻调用钩子函数。
在此之前你需要了解一下 回调函数:
回调函数是你留个处理方法给事件,事件发生了以后会自动执行你留下调处理方法。
钩子函数是好比找了个代理,监视事件是否发生,如果发生了这个代理就执行你的事件处理方法;在这个过程中,代理就是钩子函数。
在某种意义上,回调函数做的处理过程跟钩子函数中要调用调方法一样。 但是有一点: 钩子函数一般是由事件发生者提供的。直白了说,它留下一个钩子,这个钩子的作用就是钩住你的回调方法。
如果稍微懂点Vue的话,里面有生命周期函数,说的是一个页面不同时期执行的函数,那些都是钩子函数 举个例子: ``
<script>
new Vue({ //new 一个实例对象
el:"#root",
data:{
str:1,
},
mounted(){ //当我的实例挂载完毕之后 会执行 这个就是钩子函数
console.log(123)
}
})
</script>
这个 mounted()是vue.js框架里面自带的,无论我写不写它就在那里,但当我调用它以后,它就会执行我参数的内容。
下面列举一下见到的生命周期钩子函数(其中最常用的是 mounted、updated 和 unmounted)
beforeCreate:在组件实例初始化完成之后立即调用。
Created:在组件实例处理完所有与状态相关的选项后调用。
beforeMount:在组件被挂载之前调用。
Mounted:在组件被挂载之后调用。
beforeUpdate:在组件即将因为一个响应式状态变更而更新其 DOM 树之前调用。
Updated:在组件因为一个响应式状态变更而更新其 DOM 树之后调用。
beforeUnmount:在一个组件实例被卸载之前调用。
Unmounted:在一个组件实例被卸载之后调用。
errorCaptured:在捕获了后代组件传递的错误时调用。
renderTracked:在一个响应式依赖被组件的渲染作用追踪后调用。
renderTriggered:在一个响应式依赖被组件触发了重新渲染之后调用。
Activated:若组件实例是 缓存树的一部分,当组件被插入到 DOM 中时调用。
这个钩子在服务端渲染时不会被调用。
Deactivated:若组件实例是 缓存树的一部分,当组件从 DOM 中被移除时调用。这个钩子在服务端渲染时不会被调用。
serverPrefetch:当组件实例在服务器上被渲染之前要完成的异步函数。
onMounted():注册一个回调函数,在组件挂载完成后执行。
onUpdated():注册一个回调函数,在组件因为响应式状态变更而更新其 DOM 树之后调用。
onUnmounted():注册一个回调函数,在组件实例被卸载之后调用。
onBeforeMount():注册一个钩子,在组件被挂载之前被调用。
onBeforeUpdate():注册一个钩子,在组件即将因为响应式状态变更而更新其 DOM 树之前调用。
onBeforeUnmount():注册一个钩子,在组件实例被卸载之前调用。
onErrorCaptured():注册一个钩子,在捕获了后代组件传递的错误时调用。
onRenderTracked()注册一个调试钩子,当组件渲染过程中追踪到响应式依赖时调用。这个钩子仅在开发模式下可用,且在服务器端渲染期间不会被调用。
onRenderTriggered():注册一个调试钩子,当响应式依赖的变更触发了组件渲染时调用。这个钩子仅在开发模式下可用,且在服务器端渲染期间不会被调用。
onActivated():注册一个回调函数,若组件实例是 缓存树的一部分,当组件被插入到 DOM 中时调用。这个钩子在服务器端渲染期间不会被调用。
onDeactivated():注册一个回调函数,若组件实例是 缓存树的一部分,当组件从 DOM 中被移除时调用。这个钩子在服务器端渲染期间不会被调用。
onServerPrefetch():注册一个异步函数,在组件实例在服务器上被渲染之前调用。