componentWillReceiveProps componentDidUpdate

2024-01-09 21:32

本文主要是介绍componentWillReceiveProps componentDidUpdate,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

componentWillReceiveProps(nextProps) {if(nextProps.count !== this.props.count) // doSomething}
}
componentDidUpdate(prevProps) {if(prevProps.count !==  this.props.count) {this.setState({count: this.props.count})} 
}

在React生命周期调用时机

componentWillReceiveProps在组件接受新的props之前触发,
componentDidUpdate在组件接受新的props之后触发

如果你想在组件收到新props之前做一些事情,你可以使用componentWillReceiveProps,如果你想在收到新的props或状态后做某事,你可以使用componentDidUpdate

更新state的方式

componentWillReceiveProps更新状态是同步的
componentDidUpdate更新状态是异步的
这点区别非常重要,也是componentWillReceiveProps生命周期被废弃的重要原因(可能导致某些问题), 所以推荐使用componentDidUpdate

这篇关于componentWillReceiveProps componentDidUpdate的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/588499

相关文章

超过最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。React 限制了嵌套更新的数量以防

超过最大更新深度。当组件在 componentWillUpdate 或 componentDidUpdate 中重复调用 setState 时,可能会发生这种情况。React 限制了嵌套更新的数量以防止无限循环 有没用像我这样报错的 这个报错大概意思就是说我嵌套的方法太多,在重复调用setState,React限制了嵌套更新的数量以防止无限循环 修改前的代码: <Drawertitle

react生命周期之componentDidUpdate

官方解释是: componentDidUpdate 在组件完成更新后立即调用。在初始化时不会被调用。 当state或者props改变时触发,需要注意的是一定要做判断条件,否则会陷入死循环。

React面试题:对componentWillReceiveProps的理解

React面试题:对componentWillReceiveProps的理解 回答思路:是什么--->干什么用的-->优点-->什么时候用是什么?干什么用的?优点什么时候用? 回答思路:是什么—>干什么用的–>优点–>什么时候用 是什么? 是一个生命周期函数,在react17版本中开始弃用,当props发生改变时执行 干什么用的? 当props发生改变时执行,初始化re