当前位置: 首页 > Web前端 > vue.js

Vue生命周期详解

时间:2023-03-31 14:19:57 vue.js

Vue生命周期详解Vue的生命周期是指Vue实例在从创建到销毁的整个过程中所经历的状态。Vue中有11种生命状态:8种普通,3种后增量Vue生命周期中有8种钩子函数,常用的第一阶段有4种:初始阶段1.创建Vue实列。这个时候还没有开始创建,生命处于胚胎状态1.生命处于胚胎状态2.初始化Vue其实很多内部事件,准备中的胚芽的活性蛋白变为活性(preparationwork),生命周期就这样开始了2.胚芽在preparation中的活性蛋白变得活跃(preparationwork),生命周期就这样开始了Born—hook函数:beforeCreate3。初始化,将data中的数据挂载到Vuereal列,实现双向绑定(数据劫持),现在可以访问Vue中的数据了(Vue有数据)3.Germ突破细胞壁,穿过缝隙([Object.defineProperty]),并开始萌发(data)——hook函数:created,这个阶段不操作元素和节点,只操作数据,通常我们在这个阶段调用方法和发送请求,把请求的数据放回去进入数据定义的数据。4.检查是否有el4.芽向上长,检查这里的sunlight(el)是否合适5.如果没有el,等待vuerealcolumn调用$mount传入el参数5.如果阳光不好,那就另找Other地方(调用$mount),但通常不需要另找地方(调用$mount)6.有el判断是否传模板参数6.芽发现有阳光,开始检测这里的土地是否肥沃(模板参数),但通常土壤不肥沃(模板参数)7.如果有模板参数,将模板参数编译成渲染函数,结合html和js创建整体结构,如果没有,不影响,将el参数的outerhtml编译成Overall7.嫩芽探测后判断。如果肥沃(模板参数)吸收养分比较硬,可以抽出两颗嫩芽(结合html和js创建整体结构),如果普通,可以抽出一根嫩芽(el参数outerHTML编译成一个整体)—钩子函数:beforeMount8。构建的结构体放在Vue实例的$el属性中,el参数换成这个结构体。8、新长出的叶子替换老叶子(替换el参数),花蕾长成小花诞生——钩子函数:mounted挂载完成时调用,加载页面中的标签结构。此时,页面中的DOM标签就可以在这个阶段进行操作了。注意:这个钩子函数在整个生命周期中只会被调用一次。第二阶段:Vue的update阶段——循环执行两个小阶段9.在页面显示最终内容,这里形成无限循环,等待数据变化9.小花不断生长,新叶不断更换老叶(无限循环),等待开花的那一天(等待数据变化)诞生——钩子函数:beforeUpdate10。当数据发生变化时,重新渲染页面的结构和内容,根据变化的内容知道是哪部分内容10.在开花的那天(数据发生变化),通过授粉覆盖(重新渲染结构和页面内容),雌蕊获取信息素判断授粉,从而判断结果(改变内容知道那部分内容)是否诞生——hook函数:updated根据新修改的数据重新渲染在页面之后调用。可以得到新的数据,可以得到新的DOM。第三阶段:Vue的销毁阶段11.等待vm.$destroy方法调用11.收到水果后,等待fall(等待vm.$destroy方法调用)诞生——Hook函数:之前调用beforeDestroy实例被销毁。在这一步,实例仍然完全可用。12、调用后卸载vue中的所有监控:包括数据监控,页面结构监控,其他事件监控。..12.秋天,所有的叶子都掉了,开始慢慢枯萎了(卸载vue中的所有监听器)——钩子函数:被销毁的Vue实例所指示的一切都会被解除绑定,所有的事件监听器都会被移除,所有的child实例也被销毁。13.Vue实例销毁