React生命周期(新-旧)

这篇具有很好参考价值的文章主要介绍了React生命周期(新-旧)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

1、生命周期介绍

① 是什么?

组件从创建到挂载页面上运行,再到组件不用时卸载的过程,叫生命周期,只有类组件才有生命周期

②作用

学习组件的生命周期,有助于理解组件的运行方式,完成更复杂的组件更能、分析组件错误原因等。

2、钩子函数介绍

① 是什么?

生命周期的每个阶段总是伴随着一些方法调用,这些方法就是生命周期的钩子函数。

②作用

为开发人员在不同阶段操作组件提供了时机。

生命周期的三个阶段

三阶段分为:创建时、更新时和卸载时。
👉点击此(生命周期结构图)

一、生命周期(旧)

React生命周期(新-旧),前端,#  React,react.js,javascript,前端,搜索引擎

1.初始化阶段(挂载阶段)

① constructor

Ⅰ、执行

组件实例被创建并初始化时触发

Ⅱ、能做什么

  • 通过给 this.state 赋值对象来初始化内部 state。
  • 为事件处理函数绑定实例
② componentWillMount

Ⅰ、执行

componentWillMount() 在挂载之前被调用。

Ⅱ、能做什么

用于准备渲染前的工作

③ render

Ⅰ、执行

根据组件的props和state

Ⅱ、能做什么

渲染UI,返回需要渲染的元素结构

④ componentDidMount

Ⅰ、执行

componentDidMount() 会在组件挂载后(插入 DOM 树中)立即调用。依赖于 DOM 节点的初始化应该放在这里

Ⅱ、能做什么

这个方法是比较适合添加订阅的地方。如果添加了订阅,请不要忘记在 componentWillUnmount() 里取消订阅

2.更新阶段

① shouldComponentUpdate

Ⅰ、执行

当 props 或 state 发生变化时,shouldComponentUpdate() 会在渲染执行之前被调用。

Ⅱ、能做什么

根据shouldComponentUpdate的返回值,判断组件的输出是否受但钱state或peops更改影响。默认行为是state每次发生变化组件都会重新渲染。大部分情况下,应该遵循默认行为。

② componentWillUpdate

Ⅰ、执行

组件即将被重新渲染前触发

Ⅱ、能做什么

用于准备更新前的工作

③ render

Ⅰ、执行

根据组件的props和state

Ⅱ、能做什么

渲染UI,返回需要渲染的元素结构

④ componentDidUpdate

Ⅰ、执行

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

Ⅱ、能做什么

当组件更新后,可以在此处对 DOM 进行操作。如果你对更新前后的 props 进行了比较,也可以选择在此处进行网络请求。

3.卸载阶段

① componentWillUnmount

Ⅰ、执行

componentWillUnmount() 会在组件卸载及销毁之前直接调用。

Ⅱ、能做什么

在此方法中执行必要的清理操作,例如,清除 timer,取消网络请求或清除在 componentDidMount() 中创建的订阅等。

React生命周期(新-旧),前端,#  React,react.js,javascript,前端,搜索引擎

二、生命周期(新)

React生命周期(新-旧),前端,#  React,react.js,javascript,前端,搜索引擎

1.初始化阶段(挂载阶段)

① constructor

Ⅰ、执行

组件实例被创建并初始化时触发

Ⅱ、能做什么

  • 通过给 this.state 赋值对象来初始化内部 state。
  • 为事件处理函数绑定实例
② getDerivedStateFromProps

Ⅰ、执行

getDerivedStateFromProps 会在调用 render 方法之前调用,并且在初始挂载及后续更新时都会被调用。

Ⅱ、能做什么

它应返回一个对象来更新 state,如果返回 null 则不更新任何内容。

③ render

Ⅰ、执行

根据组件的props和state

Ⅱ、能做什么

渲染UI,返回需要渲染的元素结构

④ componentDidMount

Ⅰ、执行

componentDidMount() 会在组件挂载后(插入 DOM 树中)立即调用。依赖于 DOM 节点的初始化应该放在这里

Ⅱ、能做什么

这个方法是比较适合添加订阅的地方。如果添加了订阅,请不要忘记在 componentWillUnmount() 里取消订阅

2.更新阶段

① getDerivedStateFromProps

Ⅰ、执行

getDerivedStateFromProps 会在调用 render 方法之前调用,并且在初始挂载及后续更新时都会被调用。

Ⅱ、能做什么

它应返回一个对象来更新 state,如果返回 null 则不更新任何内容。

② shouldComponentUpdate

Ⅰ、执行

当 props 或 state 发生变化时,shouldComponentUpdate() 会在渲染执行之前被调用。

Ⅱ、能做什么

根据shouldComponentUpdate的返回值,判断组件的输出是否受但钱state或peops更改影响。默认行为是state每次发生变化组件都会重新渲染。大部分情况下,应该遵循默认行为。

③ render

Ⅰ、执行

根据组件的props和state

Ⅱ、能做什么

渲染UI,返回需要渲染的元素结构

④ getSnapshotBeforeUpdate

Ⅰ、执行

getSnapshotBeforeUpdate() 在最近一次渲染输出(提交到 DOM 节点)之前调用。

Ⅱ、能做什么

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

⑤ componentDidUpdate

Ⅰ、执行

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

Ⅱ、能做什么

当组件更新后,可以在此处对 DOM 进行操作。如果你对更新前后的 props 进行了比较,也可以选择在此处进行网络请求。

3.卸载阶段

① componentWillUnmount

Ⅰ、执行

componentWillUnmount() 会在组件卸载及销毁之前直接调用。

Ⅱ、能做什么

在此方法中执行必要的清理操作,例如,清除 timer,取消网络请求或清除在 componentDidMount() 中创建的订阅等。

React生命周期(新-旧),前端,#  React,react.js,javascript,前端,搜索引擎

三、生命周期新旧整体图片

React生命周期(新-旧),前端,#  React,react.js,javascript,前端,搜索引擎

四、三个被遗弃的生命周期函数

以下生命周期方法标记为“过时”。这些方法任然有效,但不建议在新代码中使用它们。使用这被遗弃的生命周期需要在前面加上UNSAFE_,但是不加也没事(建议加上)。

1、UNSAFE_componentWillMount()

Ⅰ、执行

UNSAFE_componentWillMount() 是 React 组件生命周期中的一个方法,用于在组件挂载(即被渲染到 DOM 中)之前调用。

Ⅱ、能做什么

在组件更新之前执行一些操作。它接收两个参数:nextProps和nextState,分别表示组件即将更新的props和state。

2、UNSAFE_componentWillReceiveProps()

Ⅰ、执行

用于在组件接收新的props时触发。

Ⅱ、能做什么

允许组件根据即将接收到的新props进行一些操作,例如更新组件的状态或执行一些副作用操作。在这个方法中,可以比较当前props和即将接收到的props的差异,并根据需要进行相应的处理。

3、UNSAFE_componentWillMount()

Ⅰ、执行

当组件的props或state发生变化,并且在重新渲染之前,UNSAFE_componentWillUpdate()方法会被调用。

Ⅱ、能做什么

UNSAFE_componentWillUpdate()的作用是在组件更新之前执行一些操作。它接收两个参数:nextProps和nextState,分别表示组件即将更新的props和state。

五、新增的两个生命周期函数

1、getDerivedStateFromProps

执行:

static getDerivedStateFromProps(props, state)
在组件创建时和更新时的render方法之前调用。

作用:

它应该返回一个对象来更新状态,或者返回null来不更新任何内容。

2、getSnapshotBeforeUpdate

执行:

getSnapshotBeforeUpdate()
被调用于render之后,可以读取但无法使用DOM的时候。

作用:

它使您的组件可以在可能更改之前从DOM捕获一些信息(例如滚动位置)。此生命周期返回的任何值都将作为参数传递给componentDidUpdate()。文章来源地址https://www.toymoban.com/news/detail-680687.html

到了这里,关于React生命周期(新-旧)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【react】react生命周期钩子函数:

    一、生命周期概念: 生命周期:简单来说就是一个事物从出生到消亡的过程就是生命周期,在React中的生命周期,就是组件从创建、挂载到页面再到卸载组件的过程。 意义:生命周期有助于理解组件运行方式、完成复杂组件功能、分析组件中间问题产生的原因等。 生命周期钩子函数

    2024年02月14日
    浏览(46)
  • 面试题-React(六):React组件和生命周期

    一、React组件 React组件简介: React组件是构建用户界面的基本单元。它们将界面拆分成独立、可重用的部分,使得代码更加模块化、可维护性更高。React组件可以是函数组件或类组件,它们接收输入的数据(称为props)并返回表示用户界面的React元素。 创建React组件: 在React中

    2024年02月11日
    浏览(34)
  • 【react从入门到精通】深入理解React生命周期

    ✍创作者:全栈弄潮儿 🏡 个人主页: 全栈弄潮儿的个人主页 🏙️ 个人社区,欢迎你的加入:全栈弄潮儿的个人社区 📙 专栏地址:react从入门到精通 【分享几个国内免费可用的ChatGPT镜像】 【10几个类ChatGPT国内AI大模型】 【用《文心一言》1分钟写一篇博客简直yyds】 【用

    2024年02月03日
    浏览(49)
  • react---生命周期

    目录 1.新旧生命周期对比 2.常用的3个钩子函数 3.生命周期(旧) 4.生命周期(新) React 中为我们提供了一些生命周期钩子函数,让我们能在 React 执行的重要阶段,在钩子函数中做一些事情。 1.新旧生命周期对比 新的生命周期 对于 旧的生命周期 ,废弃(即将废弃)了 三个

    2024年02月08日
    浏览(52)
  • React 生命周期新旧对比

    React16.4版本之后使用了新的生命周期,它使用了一些新的生命周期钩子(getDerivedStateFromProps、getSnapshotBeforeUpdate),并且即将废弃老版的3个生命周期钩子(componentWillMount、componentWillReceiveProps、componentWillUpdate)。 因为React 16引入了 Fiber机制 ,把 同步 的渲染流程进化为了 异步

    2024年02月11日
    浏览(44)
  • 浅谈React生命周期

    在React中,组件的生命周期是指组件从创建到销毁的整个过程中所经历的一系列阶段。React 16.3版本之前,组件的生命周期可以分为三个阶段:挂载阶段(Mounting)、更新阶段(Updating)和卸载阶段(Unmounting)。但是自React 16.3版本起,官方推出了新的生命周期方法,将原有的一

    2024年02月10日
    浏览(49)
  • react 生命周期讲解

    当涉及到React组件的创建、更新和销毁过程时,React的生命周期方法起到了至关重要的作用。正确地理解和使用这些生命周期方法可以帮助我们在不同的阶段执行特定的操作,从而实现更好的组件控制和优化。 1. 挂载阶段(Mounting) 在组件被创建并添加到DOM中时,以下生命周

    2024年02月07日
    浏览(78)
  • React生命周期(新-旧)

    ① 是什么? 组件 从创建 到挂载页面上运行,再到组件不用时 卸载 的过程,叫生命周期,只有 类组件才有生命周期 。 ②作用 学习组件的生命周期,有助于理解组件的运行方式,完成更复杂的组件更能、分析组件错误原因等。 ① 是什么? 生命周期的每个阶段总是伴随着一

    2024年02月11日
    浏览(39)
  • react 生命周期方法

    每个组件都包含 “生命周期方法”,你可以重写这些方法,以便于在运行过程中特定的阶段执行这些方法。你可以使用此生命周期图谱作为速查表。在下述列表中,常用的生命周期方法会被加粗。其余生命周期函数的使用则相对罕见。 挂载 当组件实例被创建并插入 DOM 中时

    2024年02月13日
    浏览(85)
  • React 组件生命周期

    Mounting(挂载):已插入真实 DOM Updating(更新):正在被重新渲染 Unmounting(卸载):已移出真实 DOM Mounting阶段叫挂载阶段,伴随整个虚拟DOM的声明。它里面有四个小的生命周期函数,分别是: constructor:初始化属性 componentWillMount:在组件即将被挂载到页面的时候执行 render:页面s

    2024年02月10日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包