前端:生命周期函数与钩子函数

什么是生命周期函数?

即一个Vue实例从创建到销毁的这个过程中自动执行的函数。

什么是钩子函数?

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

什么是回调函数?

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

 

直白的说:回调函数===钩子函数===生命周期函数

钩子函数是一些框架中的叫法,是这个框架中生命周期的某个阶段的回调函数

 

下面就巩固一下生命周期函数的各个阶段:

生命周期函数各个阶段:

 

 

beforeCreated: el和data并未初始化

created: 完成了data的初始化,el还未完成

beforeMount: 完成el和data的初始化(相关的 render 函数首次被调用)

mounted: 完成挂载。mounted不会保证所有的子组件也都被挂载完成。如果希望等到整个视图都渲染完毕再执行某些操作,可以在 mounted内部使用 vm.$nextTick

mounted: function () {
  this.$nextTick(function () {
    // 仅在整个视图都被渲染之后才会运行的代码
  })
}

在beforeMount时期:p标签内还是{{ message }},这一步是利用虚拟DOM技术,占住位置,接着在mounted时期完成值的渲染。

 

 

beforeUpdate: 值的重新渲染发生在这一时期。(这里适合在现有 DOM 将要被更新之前访问它,比如移除手动添加的事件监听器。)

Update:不会保证所有的子组件也都被重新渲染完毕。如果你希望等到整个视图都渲染完毕,可以在 Update里使用 vm.$nextTick:

updated: function () {
  this.$nextTick(function () {
    //  仅在整个视图都被重新渲染之后才会运行的代码     
  })
}

 

activated: 被 keep-alive 缓存的组件激活时调用。

deactivated: 被 keep-alive 缓存的组件失活时调用。

 

beforeDestroy: 实例销毁之前调用。在这一步,实例仍然完全可用。

destroy:实例销毁后调用。该钩子被调用后,对应 Vue 实例的所有指令都被解绑,所有的事件监听器被移除,所有的子实例也都被销毁。

 

errorCaptured: 在捕获一个来自后代组件的错误时被调用。

此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。此钩子可以返回 false 以阻止该错误继续向上传播。

 

 

 

参考博客:

什么是钩子函数

生命周期函数各个阶段

posted @ 2022-03-07 20:32  Du9191  阅读(277)  评论(0编辑  收藏  举报