首页 > 编程知识 正文

js函数的生命周期,vue有几个生命周期

时间:2023-05-03 15:53:35 阅读:18775 作者:2898

生命周期函数共分为8个阶段的创建前/后、加载前/后、更新前/后、销毁前/后。创建前/后:

在beforeCreated阶段,vue实例的装载元素$el和数据对象data处于未初始化状态。

在created阶段,有vue实例的数据对象data,但还没有$el。

载入前/后:

在beforeMount阶段,vue实例的$el和data已初始化,但装载前是虚拟的dom节点,data.message尚未被替换。

在mounted阶段,vue实例装载完成,并成功渲染了data.message。

更新前/后:

当data发生变化时,将触发beforeUpdate和updated方法。

销毁前/后:

执行destroy方法后,更改data不再触发周期函数。 这表明,虽然vue实例已取消接收事件并将事件绑定到dom,但dom结构仍然存在。总结

1、beforeCreate :实例初始化后,在配置数据观测(data observer)event/watcher事件之前调用。 请注意。 前,此时,data、watcher、methods都没有滴下。

此时还没有任何vue实例,但$route对象存在,可以根据路由信息进行重定向等操作。

2、created :实例创建后调用。 在此步骤中,实例包括数据观测、属性和方法运算、

3、微信/事件事件回调。 但是,装载阶段尚未开始,el属性目前尚未显示。 当前未显示this.el属性。 此时,this.data可以访问。 watcher、events和methods也出现了。 可用于通过后台接口动态更改data和methods的场景。

4、beforeMount :装载开始前调用的相关渲染器函数

第一次被呼叫。 但是,render正在运行,此时无法操作DOM。 我打印了此时的vue实例对象。 此时,与created生命周期相比,只增加了一个$el属性,但其值为undefined。

使用场景:渲染页面所需的数据必须尽快完成分配。 mounted :装载后调用。 在这里,您将创建vm.el,替换el,然后装载到实例上。 (在官方文档中,“如果根实例装载了文档中的元素,则在调用mounted时替换vm.el并装载到实例中。” (官方文档中的“如果根实例装载了文档中的元素,则调用mounted时vm.el也在文档中”一词是可疑的。)此时元素已渲染。 依赖于DOM的代码就放在这里吧。 例如监听DOM事件。

5、beforeUpdate:vm.data更新后,在虚拟DOM重新渲染和修补之前调用。 在此挂接中进一步修改vm.data更新后,在重新渲染和修补虚拟DOM之前调用。 可以使用此挂接进一步修改虚拟机. data。 这不会触发其他重新渲染过程。 更新—在虚拟DOM重新渲染和修补后调用。

调用此挂接时,组件DOM中的data将更新,以便您可以执行依赖于DOM的操作。 但是,此时不要修改data。 否则,将继续触发两个生命周期: beforeUpdate和updated,进入死循环。

6, beforeDestroy :在实例被销毁之前调用。 在此步骤中,实例仍然完全可用。 实例将被丢弃。 在被废弃之前做点什么吧。 哈哈~

7、destroyed:Vue实例销毁后调用。 此时,Vue实例表示的所有内容都将解除绑定,所有事件侦听器将被删除,所有子实例将被销毁。

注:服务器端渲染期间不会调用beforeMount、mounted、beforeUpdate、updated、beforeDestroy和destroyed挂接函数。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。