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

React的生命周期

时间:2022-12-12 10:33:26浏览次数:40  
标签:生命周期 render 更新 React state 调用 组件

在React中也有生命周期,但是生命周期只存在于Class声明的组件中,在Hooks组件是没有的。这里只谈论React在版本16.4之后的生命周期。
image

生命周期表示这一个组件的出生到坟墓所经历的过程,这里先展示5个最为常用的生命周期。

常用生命周期

挂载时会触发3个生命周期,分别是constructor, render和 componentDidMount

constructor

实例过程中自动调用的方法,在方法内部通过super关键字获取来自父组件的props在该方法中,通常的操作作为初始化state状态或者在this上挂载方法

render

类组件必须实现的方法,用于渲染DOM结构,可以访问组件state与prop属性,这是组件的第一次渲染DOM结构,此时可以访问组件的state和prop属性

componentDidMount

会在组件挂载后(插入DOM树中)立即调用。依赖于DOM节点的初始化应该放在这里。如需网络请求获取数据,此处是实例化请求的好地方。

更新时

更新时会触发render和componentDidUpdate

render

当数据更新,需要渲染视图,就一定会调用render,在render之后会执行componentDidUpdate

componentDidUpdate

componentDidUpdate()会在更新后被立即调用。首次渲染不会执行此方法。

卸载时

卸载时只会调用componentWillUnmount
componentWillUnmount()会在组件卸载及销毁之前直接调用。在此方法中执行必要的清理操作,例如,清除timer,取消网络请求或清除在componentDidMount()中创建的订阅等。

其他不常用的生命周期

image

getDerivedStateFromProps

getDerivedStateFromProps会在调用render方法之前调用,并且在初始挂载及后续更新时都会被调用。它应返回一个对象来更新state,如果返回null则不会更新任何内容。
在每次render方法前调用,第一个参数为即将更新的props,第二个参数为上一个状态的state,可以比较props和state来加一些限制条件,防止无用的state更新

shouldComponentUpdate

这个生命周期函数在更新时的render前运行,如果这个函数返回false,则不会调用render

getSnapshotBeforeUpdate

这个方法在render之后执行,它使得组件能在发生更改之前从DOM中捕获一些信息(例如,滚动位置)。此生命周期方法的任何返回值将作为参数传递给componentDidUpdate()。

标签:生命周期,render,更新,React,state,调用,组件
From: https://www.cnblogs.com/huayang1995/p/16975423.html

相关文章

  • 前端必会react面试题及答案
    state和props触发更新的生命周期分别有什么区别?state更新流程:这个过程当中涉及的函数:shouldComponentUpdate:当组件的state或props发生改变时,都会首先触发这......
  • React组件之间的通信方式总结(下)
    一、写一个时钟用react写一个每秒都可以更新一次的时钟importReactfrom'react'importReactDOMfrom'react-dom'functiontick(){letele=<h1>{ne......
  • React组件之间的通信方式总结(上)
    先来几个术语:官方我的说法对应代码ReactelementReact元素letelement=<span>A爆了</span>Component组件classAppextendsReact.Component{}无Ap......
  • react面试题合集
    何为reduxRedux的基本思想是整个应用的state保持在一个单一的store中。store就是一个简单的javascript对象,而改变应用state的唯一方式是在应用中触发actions,......
  • Windows搭建react-native(RN)环境,RN版本0.55,jdk8,node12.2.0,Android Studio
    Windows搭建react-native(RN)环境,RN版本0.55,jdk8,node12.2.0,AndroidStudio七月星辰已于 2022-09-2609:20:38 修改1319收藏6分类专栏:AndroidStud......
  • 【react-native-picker】报错解决方案
    【react-native-picker】报错解决方案时间:2018-12-1310:30:01关键字: native    react    解决方案   手机看文章[导读]在安装react-native-picker过程......
  • 无法运行jetifier React Native
    无法运行jetifierReactNativeNdu*_*Jay  5 reactjs react-native-android 我尝试运行react-nativerun-android,但出现此错误。infoRunningjetifiertomigr......
  • React Native技术在小米有品App中的应用
    ReactNative技术在小米有品App中的应用小米有品技术团队2021年12月14日10:19 ·  阅读12641笔者khzliu同学,关注于大前端、跨端技术小米有品简介小米有品......
  • 在 React 中使用 TypeScript
    如何在React项目中使用TS,包括以下内容:使用CRA创建支持TS的项目TS配置文件tsconfig.jsonReact中的常用类型使用CRA创建支持TS的项目React脚手......
  • React native 概述和环境搭建
    ReactNative(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架React在原生移动应用平台的衍生产物,支持iOS和安卓两大平台。RN使......