首页 > 其他分享 >React 生命周期函数

React 生命周期函数

时间:2022-11-13 22:33:44浏览次数:46  
标签:react 生命 render 渲染 DOM 周期函数 更新 React 组件

React 生命周期图示

在这里插入图片描述 React的生命周期从广义上分为三个阶段:创建、更新、卸载;

创建

constructor()

constructor()中完成了React数据的初始化,它接受两个参数:props和context,当想在函数内部使用这两个参数时,需使用super()传入这两个参数。 注意:只要使用了constructor()就必须写super(),否则会导致this指向错误。

render()

render函数会插入jsx生成的dom结构,react会生成一份虚拟dom树,在每一次组件更新时,在此react会通过其diff算法比较更新前后的新旧DOM树,比较以后,找到最小的有差异的DOM节点,并重新渲染。

componentDidMount()

组件第一次渲染完成,此时dom节点已经生成,可以在这里调用ajax请求,返回数据setState后组件会重新渲染

更新

shouldComponentUpdate(nextProps,nextState) 主要用于性能优化(部分更新) 唯一用于控制组件重新渲染的生命周期,由于在react中,setState以后,state发生变化,组件会进入重新渲染的流程,在这里return false可以阻止组件的更新 因为react父组件的重新渲染会导致其所有子组件的重新渲染,这个时候其实我们是不需要所有子组件都跟着重新渲染的,因此需要在子组件的该生命周期中做判断

render()

render函数会插入jsx生成的dom结构,react会生成一份虚拟dom树,在每一次组件更新时,在此react会通过其diff算法比较更新前后的新旧DOM树,比较以后,找到最小的有差异的DOM节点,并重新渲染。

componentDidUpdate(prevProps,prevState)

组件更新完毕后,react只会在第一次初始化成功会进入componentDidmount,之后每次重新渲染后都会进入这个生命周期,这里可以拿到prevProps和prevState,即更新前的props和state。 componentDidUpdate(prevProps,prevState) 组件更新完毕后,react只会在第一次初始化成功会进入componentDidmount,之后每次重新渲染后都会进入这个生命周期,这里可以拿到prevProps和prevState,即更新前的props和state

卸载

componentWillUnmount()

componentWillUnmount()在组件被卸载前调用,可以在这里执行一些清理工作,比如清楚组件中使用的定时器,清楚componentDidMount中手动创建的DOM元素等,以避免引起内存泄漏。

总结

创建

  • constructor()
  • render()
  • componentDidMount()

更新

  • render()
  • componentDidUpdate()

卸载

  • componentWillUnmount()

结语

本小节到此结束,谢谢大家的观看!

如有问题欢迎各位指正

标签:react,生命,render,渲染,DOM,周期函数,更新,React,组件
From: https://blog.51cto.com/u_15718546/5847981

相关文章

  • 44. 生命周期
    vue的声明周期分为4个阶段,8个钩子函数;第一阶段:创建;beforeCreate:此时的data和method方法未定义undefined created:此时的data数据和methods方法已经定义,......
  • react-router-dom v6+antd+react18配置
    官网地址:react-router1.安装的版本,antd版本4.24.12.项目目录结构3.入口文件index.js配置,react18版本发生了一些变化,改为以下写法importReactfrom'react';import......
  • Angular--父子组件生命周期钩子(lifecycle hooks)执行过程
    1.angular组件生命周期钩子执行过程组件初始化过程中,生命周期钩子执行顺序:constructor()构造函数,初始化class,(constructor不属于Angular生命周期钩子的范畴,这里只是......
  • Vue 全部生命周期组件整理
    ​前言今天继续加油学习,今天整理一下VUE中生命周期那有些,平且依次说明给个的使用场景以及作用。嘻嘻嘻,让我们一起学起来好吧~~~come生命周期beforeCreate:在创建组件之前使......
  • Vue生命周期及组件
    目录Vue生命周期钩子钩子函数的由来生命周期钩子函数生命周期图示Vue生命周期钩子钩子函数的由来每个Vue实例在被创建时都要经过一系列的初始化过程——例如,需要......
  • react 中组件如何进行数据传值?(必会)
    react中组件如何进行数据传值?(必会)点击查看代码父级传递子级:把数据挂载子组件的属性上,子组件通过this.props来接收父组件的数据。子级传递父级:父级需要定义一个修改......
  • 在 react 当中 Element 和 Component 有何区别?(必会)
    在react当中Element和Component有何区别?(必会)点击查看代码reactElement是描述屏幕上所见的内容的数据结构,是对于UI的对象的表述.典型的。reactElement就是利......
  • 事件在 react 中的处理方式?(必会)
    事件在react中的处理方式?(必会)点击查看代码React元素的事件处理和DOM元素类似,但有一点语法上的不同:React事件绑定属性的命名采用驼峰式写法,而不是小写如果采用JSX的......
  • react 中 keys 的作用是什么?
    react中keys的作用是什么?点击查看代码Keys是react用于追踪哪些列表中元素被修改、被添加或者被移除的辅助标识。在开发过程中,我们需要保证某个元素的key在其......
  • react 中 refs 的作用是什么?
    react中refs的作用是什么?点击查看代码Refs是react提供给我们的安全访问DOM元素或者某个组件实例的句柄,我们可以为元素添加ref属性然后在回调函数中接受该元......