react新增加的生命周期有哪些

新增加的生命周期有:1、getDerivedStateFromProps,用来控制props更新state的过程;2、getSnapshotBeforeUpdate,用于读取最新的DOM数据;3、componendDidCatch。

react新增加的生命周期有哪些

本教程操作环境:Windows7系统、react17.0.1版、Dell G3电脑。

学习React,生命周期很重要,我们了解完生命周期的各个组件,对写高性能组件会有很大的帮助.

React 生命周期分为三种状态 1. 初始化 2.更新 3.销毁

React 17 新增生命周期

一、废除的生命周期

  官网文档指出使用这些生命周期的代码会在未来版本的react中更容易产生bug,尤其是对于异步渲染的版本

  由于未来采用异步渲染机制,所以即将在17版本中去掉的生命周期钩子函数

  componentWillMount

  componentWillRecieveProps

  componentWIllUpdate

二、新增的生命周期

getDerivedStateFromProps(nextProps, prevState)

用于替换componentWillReceiveProps,可以用来控制 props 更新 state 的过程;它返回一个对象表示新的 state;如果不需要更新,返回 null 即可

在每次渲染之前都会调用,不管初始挂载还是后面的更新都会调用,这一点和componentWillReceiveProps不同(只有当父组件造成重新渲染时才调用

简单的理解就说从props中获取state,这个生命周期的功能实际上就是将传入的props映射到state上面

getDerivedStateFromProps是一个静态函数,也就是这个函数不能通过this访问到class的属性,也并不推荐直接访问属性。而是应该通过参数提供的nextProps以及prevState来进行判断,根据新传入的props来映射到state

如果props传入的内容不需要影响到你的state,那么就需要返回一个null,这个返回值是必须的,所以尽量将其写到函数的末尾

static getDerivedStateFromProps(nextProps, prevState) {    const {type} = nextProps;    // 当传入的type发生变化的时候,更新state    if (type !== prevState.type) {        return {            type,        };    }    // 否则,对于state不进行任何操作    return null;}

登录后复制

getSnapshotBeforeUpdate()

在最近的更改被提交到DOM元素前,使得组件可以在更改之前获得当前值,此生命周期返回的任意值都会传给componentDidUpdate()。

用于替换 componentWillUpdate,该函数会在update后 DOM 更新前被调用,用于读取最新的 DOM 数据,返回值将作为 componentDidUpdate 的第三个参数

在最新的渲染数据提交给DOM前会立即调用,它让你在组件的数据可能要改变之前获取他们

componendDidCatch(error, info)

如果一个组件定义了componentDidCatch生命周期,则他将成为一个错误边界(错误边界会捕捉渲染期间、在生命周期方法中和在它们之下整棵树的构造函数中的错误,

就像使用了try catch,不会将错误直接抛出了,保证应用的可用性)

三、基本使用

class A extends React.Component {  // 用于初始化 state  constructor() {}  // 用于替换 `componentWillReceiveProps` ,该函数会在初始化和 `update` 时被调用  // 因为该函数是静态函数,所以取不到 `this`  // 如果需要对比 `prevProps` 需要单独在 `state` 中维护  static getDerivedStateFromProps(nextProps, prevState) {}  // 判断是否需要更新组件,多用于组件性能优化  shouldComponentUpdate(nextProps, nextState) {}  // 组件挂载后调用  // 可以在该函数中进行请求或者订阅  componentDidMount() {}  // 用于获得最新的 DOM 数据  getSnapshotBeforeUpdate() {}  // 组件即将销毁  // 可以在此处移除订阅,定时器等等  componentWillUnmount() {}  // 组件销毁后调用  componentDidUnMount() {}  // 组件更新后调用  componentDidUpdate() {}  // 渲染组件函数  render() {}}

登录后复制

【相关推荐:Redis视频教程】

以上就是react新增加的生命周期有哪些的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2935581.html

(0)
上一篇 2025年3月11日 20:53:28
下一篇 2025年3月3日 04:13:40

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • react hook有哪些

    react hook有10个:1、useState,用于设置和改变state;2、useMemo,用于控制组件更新条件;3、useContext,用于组件传值;4、useDebugValue,显示自定义标签;5、useCallback等等。…

    2025年3月11日
    200
  • react中什么是fiber

    Fiber是React新的调度算法,是对核心算法的一次重新实现。React Fiber把更新过程碎片化,每执行完一段更新过程,就把控制权交还给React负责任务协调的模块,看看有没有其他紧急任务要做,如果有紧急任务,就去做紧急任务。 本教程…

    2025年3月11日 编程技术
    200
  • react渲染方式的几种是什么

    react渲染方式有:1、利用条件表达式渲染,适用于两个组件二选一的渲染;2、利用“&&”操作符渲染,适用于一个组件有无的渲染;3、利用变量输出组件渲染;4、利用函数方法输出组件或者利用函数式组件进行渲染。 本教程操作环境:…

    2025年3月11日
    200
  • react状态组件有哪些

    react状态组件有2种:1、有状态组件,是能定义state的组件,应用于需要更改数据的地方;2、无状态组件,是不能定义state的组件,一般应用在本身就没有数据更改的地方。 本教程操作环境:Windows7系统、react17.0.1版、…

    2025年3月11日
    200
  • react通信有哪些方式

    react通信方式有:1、用props进行父子组件通信;2、用回调函数进行子父组件通信;3、用变量提升进行兄弟组件通信;4、用Context进行跨组件通信;5、用node的events模块进行单例通信;6、用redux共享数据通信。 本教程…

    2025年3月11日
    200
  • react请求数据用什么钩子

    react请求数据用“componentDidMount”钩子。React的数据请求是在钩子函数componentDidMount()中进行的,该函数可以用来加载外部数据,或处理其他的副作用代码。 本教程操作环境:Windows7系统、re…

    2025年3月11日 编程技术
    200
  • react和webpack的区别是什么

    区别:1、React是一个JavaScript框架,而webpack是一个JavaScript应用程序的静态模块打包器;2、React主要用于构建用户界面,而webpack可以进行重新加载编译,可将所有的静态资源都合并,进而减少io请求。 …

    2025年3月11日
    200
  • react用什么管理状态

    react管理状态的工具:1、利用hooks进行状态管理;2、利用Redux进行状态管理,这种方式的配套工具比较齐全,可以自定义各种中间件;3、利用Mobx进行状态管理,它通过透明的函数响应式编程使得状态管理变得简单和可扩展。 本教程操作环…

    2025年3月11日
    200
  • react中使用hook的好处是什么

    react中使用hook的好处:1、简化逻辑复用,能更容易复用代码,Hook让开发者可以在无需修改组件结构的情况下复用状态逻辑;2、Hook能够让针对同一个业务逻辑的代码聚合在一块,让业务逻辑清晰地隔离开,让代码更加容易理解和维护。 本教程…

    2025年3月11日
    200
  • react高阶组件是什么意思

    在react中,高阶组件是一个函数,是用于重用组件逻辑的高级技术;高阶组件用于接受一个组件作为参数,返回一个新的组件,这个新的组件会使用传给它的组件作为子组件,可以用属性代理和反向继承两种方法来实现高阶组件。 本教程操作环境:Windows…

    2025年3月11日
    200

发表回复

登录后才能评论