程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Vue中的几个生命钩子函数名称

balukai 2025-03-07 16:02:05 文章精选 52 ℃

今天总结一下Vue2中钩子函数的几个名称:一般面试说的是8个,有的说是十一个;有些说nextTick()是第十一个的,也有不承认的,说errorCaptured才是第11个,暂时就不争论了。今天都总结一下,每个函数做什么的,下次做一个全面总结,讲述一下什么父子组件函数执行顺序,还有一些混入使用优先级;

beforeCreate:初始化之前

此时的data methods还没有完成初始化,在beforeCreate回调函数中获取不到data声明的变量,也无法调用到methods中注册的方法;

created:初始化完毕

此时已经将data methods中的变量和方法初始化完毕,现在可以在created中使用data中声明的变量,也可以调用methods注册的方法;

beforeMount:挂载前

执行完created后开始处理模板,将模板准备挂载到DOM树中;此时模板已经在内存中完成编译,还未挂载到页面中去;

mounted:挂载后

此时已经将虚拟DOM挂载到DOM树上了,页面基本完成渲染;

beforeUpdate:数据更新前执行

此时已经检测到数据发生变化,现在已经将虚拟DOM中的数据进行变更,不过此时真实DOM中的数据还是旧的;

updated:数据更新后执行

现在已经将新的数据更新到DOM中;

beforDestroy:组件销毁前执行

路由切换,组件会进行销毁,在当前组件销毁前如果有什么需要处理的事情,可以在beforeDestory回调函数中执行;计时器之类的宏任务可以在此进行销毁;

Destroyed:组件销毁后执行

此时代表当前组件已经销毁;

有时候组件需要频繁切换,频繁切换会重复初始化组件,然后再销毁组件;对性能来说比较不友好,此时可以使用keep-alive,包含的组件可以不被销毁,一直保存在内存中;也可以进行配置,那些组件不销毁或者是那些组件不需要保存;

使用keep-alive时,声明周期钩子函数又多了两个回调函数:

1、activated:当进入当前组件时会被调用,可以在此函数中做些事件处理;获取信息之类的事情;

2、deactivated:当离开当前组件时会被调用,可以在此函数中做些需要保存的数据处理;

nextTick:如果需要页面渲染完毕后操作或处理事件,可以在$nextTick中处理,像输入框获取焦点之类的事件;

errorCaptured:错误俘获

意识时当子组件或者后代组件发生错误,可以用此回调函数进行俘获,返回值类型时Boolean类型,fales或true,意思是否要将错误信息向上级组件进行传递;

如果发现文章中有错误信息欢迎指点,共同学习进步;

后续会全面整理关于声明周期的所有详细内容,包括面试回问的知识点。

关注收藏不迷路,携手踏上前端路;

Tags:

最近发表
标签列表