初学认知react和Vue的生命周期及执行顺序

本文详细探讨了React和Vue的生命周期,包括挂载、更新和卸载阶段的关键方法。在React中,从constructor到componentDidMount展示了组件的初始化和Dom操作。在Vue中,从beforeCreate到mounted阐述了数据初始化和模板渲染的过程。同时,两个框架的更新和销毁阶段也进行了对比,强调了状态管理和Dom操作的最佳实践。
摘要由CSDN通过智能技术生成

react的生命周期三个执行阶段

1,挂载阶段
1.constructor() 主要是完成React数据的初始化
2.componentWillMount() 组件初始化已完成,模板数据渲染之前执行, 客户端和服务端都会执行,主要是用于服务端渲染
render()
3.compoentDidMount() 第一次渲染后在客户端执行,此时可以操作Dom
2,更新阶段
1.componentWillReceiveProps(nextProps) 当从父类接收到props时,重新渲染组件执行的逻辑。
2.shouldComponentUpdate(nextProps,nextSate) 根据特定的条件返回true或者false,如果希望更新组件则返回true,否则返回false。默认的情况是 false
3.componentWillUpdate(nextProps,nextSate)
shouldComponentUpdate返回true以后,组件进入重新渲染的流程时执行的逻辑。在Dom中进行渲染之前调用
render() 页面渲染逻辑的执行,render函数把jsx编译为函数并生成虚拟Dom,然后通过diff算法比较更新前后的新旧Dom树,并渲染更改后的节点
4.componentDidUpdate(nextProps,nextState) 渲染后立即调用
3, 卸载过程
componentWillUnMount()
在这个生命周期里面主要是处理 一些内存泄漏的问题 比如:定时器的清除,移除所有组件中的监听器

vue的生命周期执行顺序过程

1,beforeCreate() 创建前
进行数据的初始化前,在此阶段 定义对象属性 方法 及事件 组件选项的对象还未创建,el和data还未初始化,因此无法访问methods,data,computed等的方法和数据
2,Create() 创建后
实例创建后调用, 可以改变data的数据,调用methods方法,获取computed的属性等。但是el没有挂载阶段还没有开始。
3,beforeMount( )挂载前
相关的render函数首次调用,生成虚拟Dom,进行保存在通过render函数生成真实Dom,真实Dom会替换原来的Vm. e l 。 替 换 后 的 el。替换后的 elel append到我们的页面。编译模板,把data数据和模板生成html,完成el和data的初始化。此时还没挂载到html页面,
4,Mount() 挂载后
模板中的html渲染到html页面,可以进行ajax操作,操作dom,mounted只会执行一次。
5,beforeUpdate() 更新前
数据更新前调用,虚拟Dom重新渲染和打补丁之前,可以在该钩子函数进一步更改状态,不会触发附件的渲染过程
6.update() 更新后
由于数据更改导致虚拟Dom重新渲染和打补丁只会调用,调用时,组件DOM已更新。所以不可进行依赖于Dom操作,应避免在此期间更改状态,会导致死循环,该钩子在服务端渲染期间不会被调用
7.beforeDestroy() 组件销毁前
实例还可以调用,主要用于清除定时器和事件的监听
8.destroy() 组件销毁后
实例销毁后调用,所有实践监听器被移除,子实例被销毁,该钩子在服务端渲染期间不会被调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值