Vue中的生命周期函数详解

首先对Vue实例进行初始化,在初始化阶段,对象身上只有一些生命周期函数和默认的事件,其他的东西还都未创建。beforeCreate表示在初始化之前,执行beforeCreate函数时,data和methods中的数据还都没有被初始化。当created函数执行的时候,data和created都已经被初始化完毕,如果要调用methods中的方法和data中的数据,最早只能在created函数中操作

接下来,将开始进行Vue的模板编译,最终将会在内存中生成一个编译好的最终模板字符串,然后把这个模板字符串渲染为内存中的DOM,此时,只是在内存中渲染好了模板,并没有挂载到页面中去。当执行beforeMount函数时,表示模板已经在内存中渲染好了,但是并没有真正的挂载到页面中去,此时页面还是旧的。然后将内存中编译好的模板,真实的替换到浏览器的页面中去,接下来将会执行mounted函数,只要执行了mounted函数,就表示整个Vue实例初始化完毕了,此时组件已经脱离了创建阶段,进入了运行阶段。

在运行阶段,只有两个生命周期函数,beforeUpdate和updated这两个事件会根据data数据的改变,有选择性的执行0次到多次。当执行beforeUpdate函数的时候,页面中显示的数据还是旧的。此时data里的数据已经更新完毕,但是页面尚未和最新的数据保持同步。执行完beforedUpdate后,会根据data中得到数据,在内存中重新渲染出一份最新的内存DOM树,当最新的内存DOM树被更新之后,会把最新的内存DOM树重新渲染到真实的页面中去,这时候数据从data(model层)->view(视图层)的更新。当updated事件执行的时候,页面和data数据已经保持同步了,都是最新的。

当执行boforeDestory钩子函数的时候,Vue实例就已经从运行阶段进入到了销毁阶段;当执行beforeDestory的时候,实例身上所有的data和所有的methods以及过滤器、指令等,都处于可用状态,此时还没有真正执行销毁过程。当执行destoryed函数的时候,组件已经被完全销毁了,此时,组件中的所有数据、方法、过滤器、指令等,都已经不可用了。此时Vue实例的生命周期已经全部结束。

Vue生命周期函数包括beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy和destroyed。beforeCreate是在Vue实例被创建之前调用的,此时data和methods还未初始化,不能访问DOM,可以在此函数进行一些初始化的操作。created是在Vue实例被创建之后调用的,此时data和methods已经初始化完成,可以访问DOM,可以在此函数请求数据、更新数据等操作。beforeMount是在Vue实例挂载到DOM之前调用的,此时模板还未编译成DOM,可以在此函数进行一些准备工作。mounted是在Vue实例挂载到DOM之后调用的,此时模板已经编译成DOM,可以进行DOM操作。beforeUpdate是在数据更新之前调用的,可以在此函数进行一些更新前的操作。updated是在数据更新之后调用的,可以在此函数进行一些更新后的操作。beforeDestroy是在Vue实例销毁之前调用的,可以在此函数进行一些清理工作。destroyed是在Vue实例销毁之后调用的,此时Vue实例已经完全销毁,可以进行一些最终的清理工作。123 #### 引用[.reference_title] - *1* *3* [Vue生命周期函数详解](https://blog.csdn.net/wen110898/article/details/120520844)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* [Vue 生命周期函数](https://blog.csdn.net/xyfck/article/details/126909930)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值