返回顶部
首页 > 资讯 > 精选 >React组件的生命周期是什么
  • 813
分享到

React组件的生命周期是什么

2023-07-05 12:07:55 813人浏览 八月长安
摘要

这篇文章主要讲解了“React组件的生命周期是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React组件的生命周期是什么”吧!React生命周期1、初始化阶段componentDidM

这篇文章主要讲解了“React组件的生命周期是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React组件的生命周期是什么”吧!

React生命周期

1、初始化阶段

  • componentDidMount:render之前最后一次修改状态的机会

  • render:只能访问this.props和this.state,不允许修改状态和DOM输出

  • componentDidMount:成功render并渲染完成真实DOM之后触发

2、旧生命周期

加载阶段

  • componetWillupdate, 更新前记录 DOM 状态,可能会做一些处理,与componentDidUpdate相隔时间如果过长, 会导致 状态不太信

  • 取得默认属性,初始状态在constructor中完成(运行一次,可读数据,可同步修改state,异步修改state需要setState,setState在实例产生后才可以使用,可以访问到props

  • componentWillMount 在ssr中 这个方法将会被多次调用, 所以会重复触发多遍,同时在这里如果绑定事件,将无法解绑变得不够安全

  • componentWillReceiveProps 外部组件多次频繁更新传入多次不同的 props,会导致不必要的异步请求

  • props改变 componentWillReceiveProps (组件加载时候不调用,组件接受新的props时调用)

  • shouldComponentUpdate 是否需要更新(return true就会更新dom,false阻止更新)

卸载阶段

compoenentWillUnmount (即将卸载,可以做一些组件相关的清理工作,如青春计时器、网络请求等 )常用

组件卸载: unmountComponentAtnode(document.getElementById(‘root’))

所有子组件挂载完成,才标记着父组件挂载完成,父组件更新,子组件更新,子组件更新,子组件不更新

3、新生命周期

(1)getDerivedStateFromProps 第一次的初始化组件以及后续的更新过程中(包括自身状态更新以及父传子) ,返回一个对象作为新的state,返回null则说明不需要在这里更新state

//老的生命周期的写法componentDidMount() {if(this.props.value!==undefined){this.setState({current:this.props.value})}}componentWillReceiveProps(nextProps){if(nextProps.value !==undefined){this.setState({current:nextProps.value})}}// 新的生命周期写法static getDerivedStateFromProps(nextProps) {if(nextProps.value!==undefined){return {current:nextProps.value}}return null}

(2) getSnapshotBeforeUpdate 取代了 componetWillUpdate ,触发时间为update发生的时候,在render之后dom渲染之前返回一个值,作为componentDidUpdate的第三个参数。

//新的数据不断插入数据前面, 导致我正在看的数据向下走,如何保持可视区依旧是我之前看的数据呢?getSnapshotBeforeUpdate(){return this.refs.wrapper.scrollHeight}componentDidUpdate(prevProps, prevState,preHeight) {//if(preHeight===200)return ;this.refs.wrapper.scrollTop +=this.refs.wrapper.scrollHeight-preHeight}<div style={{height:"200px",overflow:"auto"}}} ref="wrapper"><ul>.........</ul></div>

加载阶段

渲染前 static getDerivedStateFromProps(props,state)

无法访问this.props,state是更新后的必须返回一个对象,用来更新state或者null 不更新必须要初始state

state的值在任何时候都取决于props时

render

必须return jsx|string|number|null 不会直接于浏览器交互:不要操作DOM|和数据

componentDidMount 挂载完成后执行

更新阶段

  • getDerivedStateFromProps: 此方法在更新个挂载阶段都可能会调用

  • shouldComponentUpdate: shouldComponentUpdate(nextProps, nextState),有两个参数nextProps和nextState,表示新的属性和变化之后的state,返回一个布尔值,true表示会触发重新渲染,false表示不会触发重新渲染,默认返回true,我们通常利用此生命周期来优化React程序性能

  • getSnapshotBeforeUpdate: getSnapshotBeforeUpdate(prevProps, prevState),这个方法在render之后,componentDidUpdate之前调用,有两个参数prevProps和prevState,表示之前的属性和之前的state,这个函数有一个返回值,会作为第三个参数传给componentDidUpdate

  • componentDidUpdate: componentDidUpdate(prevProps, prevState, snapshot),该方法getSnapshotBeforeUpdate方法之后被调用,有三个参数prevProps,prevState,snapshot,表示之前的props,之前的state,和snapshot。

第三个参数是getSnapshotBeforeUpdate返回的,如果触发某些回调函数时需要用到 DOM 元素的状态,则将对比或计算的过程迁移至getSnapshotBeforeUpdate,然后在 componentDidUpdate中统一触发回调或更新状态。

卸载阶段

componentWillUnmount: 当组件被卸载或者销毁了就会调用,我们可以在这个函数里去清除一些定时器,取消网络请求,清理无效的DOM元素等垃圾清理工作。

4、react中性能优化的方案

shouldComponentUpdate

控制组件自身或者子组件是否需要更新,尤其在子组件非常多的情况下, 需要进行优化。

PureComponent

PureComponent会帮你 比较新props 跟 旧的props, 新的state和老的state(值相等,或者

对象含有相同的属性、且属性值相等 ),决定shouldcomponentUpdate 返回true 或者false

注意:

如果你的 state 或 props 『永远都会变』,那 PureComponent 并不会比较快,因为shallowEqual

也需要花时间。

感谢各位的阅读,以上就是“React组件的生命周期是什么”的内容了,经过本文的学习后,相信大家对React组件的生命周期是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: React组件的生命周期是什么

本文链接: https://lsjlt.com/news/351825.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • React组件的生命周期是什么
    这篇文章主要讲解了“React组件的生命周期是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“React组件的生命周期是什么”吧!React生命周期1、初始化阶段componentDidM...
    99+
    2023-07-05
  • React组件的生命周期详解
    目录React生命周期1、初始化阶段2、旧生命周期3、新生命周期4、react中性能优化的方案React生命周期 1、初始化阶段 componentDidMount:render之前...
    99+
    2023-03-19
    React 组件 生命周期 React 生命周期
  • Blazor组件的生命周期是什么
    今天小编给大家分享一下Blazor组件的生命周期是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。执行周期 SetPara...
    99+
    2023-06-29
  • 分析React中组件的生命周期
    这篇文章主要讲解了“分析React中组件的生命周期”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“分析React中组件的生命周期”吧!初始化在组件初始化阶段会...
    99+
    2024-04-02
  • React中的生命周期和子组件
    目录组件生命周期创建创建期获取虚拟DOM子组件组件生命周期 为了说明组件的创建,存在,销毁的过程,react提供了组件的生命周期,共分三大周期: 创建期:说明组件的创建的过程,相当于...
    99+
    2024-04-02
  • vue组件生命周期指的是什么
    这篇文章将为大家详细讲解有关vue组件生命周期指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 在vue组件中,生命周期指的是从组件创...
    99+
    2024-04-02
  • React组件的生命周期详细描述
    目录一、什么是生命周期二、装载过程1、constructor2、render3、componentWillMount和componentDidMount三、更新过程1、compone...
    99+
    2024-04-02
  • react新增加的生命周期是什么
    这篇文章将为大家详细讲解有关react新增加的生命周期是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 新增加的生命周期有:1、getDe...
    99+
    2024-04-02
  • Vue生命周期中的组件化是什么
    这篇文章主要介绍了Vue生命周期中的组件化是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。引出生命周期此时调用change,定时器回调修改opacity,数据修改,模板重...
    99+
    2023-06-29
  • angular组件通讯和组件生命周期是什么
    本文小编为大家详细介绍“angular组件通讯和组件生命周期是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“angular组件通讯和组件生命周期是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深...
    99+
    2024-04-02
  • react生命周期的类组件和函数组件怎么写
    这篇文章主要介绍“react生命周期的类组件和函数组件怎么写”,在日常操作中,相信很多人在react生命周期的类组件和函数组件怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”react生命周期的类组件和函...
    99+
    2023-07-04
  • React 组件的常用生命周期函数汇总
    目录1. 概述2. 生命周期的三个阶段2.1. 创建时(挂载阶段)2.2. 更新时(更新阶段)2.3. 卸载时(卸载阶段)1. 概述 意义:组件的生命周期有助于理解组件的运行方式、完成更复杂的组件功能、分析组件错误原因等...
    99+
    2022-08-15
    React 组件常用生命周期函数 React 组件
  • React Class组件生命周期及执行顺序
    一、react组件的两种定义方式 1、函数组件,简单的函数组件像下面这样,接收Props,渲染DOM,而不关注其他逻辑 function Welcome(props) { r...
    99+
    2024-04-02
  • Vue组件生命周期的三个阶段是什么
    这篇文章主要介绍“Vue组件生命周期的三个阶段是什么”,在日常操作中,相信很多人在Vue组件生命周期的三个阶段是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue组件生命周期的三个阶段是什么”的疑惑有所...
    99+
    2023-07-04
  • react生命周期(类组件/函数组件)操作代码
    1.react代码模式分为两种 类组件和函数组件(生命周期也有所不同) 2.类组件(写法如下) import React from 'react' export default cl...
    99+
    2023-01-06
    react生命周期 react类组件 react函数组件
  • React的生命周期详解
    一、React生命周期 React 生命周期分为三种状态 1. 初始化2.更新3.销毁 初始化 1、getDefaultProps() 设置默认的props,也可以用dufault...
    99+
    2024-04-02
  • Vue的生命周期是什么
    本篇内容主要讲解“Vue的生命周期是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Vue的生命周期是什么”吧!生命周期生命周期的简单介绍生命周期又叫做:生命周期回调函数、生命周期函数、生命周...
    99+
    2023-06-29
  • Springbean的生命周期是什么
    Spring Bean的生命周期可以分为以下几个阶段: 实例化(Instantiation):在容器启动时,Spring根据配置...
    99+
    2023-10-24
    Springbean
  • Flutter的生命周期是什么
    今天小编给大家分享一下Flutter的生命周期是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一 这里看一下Statef...
    99+
    2023-07-06
  • vue生命周期是什么
    本篇内容介绍了“vue生命周期是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作