- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我使用react时,我发现这两个生命周期太相似了,componentWillReceiveProps接收nextProps作为参数,shouldComponentUpdate接收nextProps和nextState作为参数,所以我认为shouldComponentUpdate可以做同样的事情甚至更多,为什么react保留componentWillReceiveProps方法,我想知道这两种方法有什么区别
最佳答案
他们有两种不同的 Angular 色并在不同的情况下执行:
shouldComponentUpdate
将在每次 prop 或状态中的某些内容发生变化(或者 React 认为已经发生变化)时被调用。它的功能是通过返回一个 bool 值来确定组件是否应该重新渲染:如果组件应该重新渲染,则为 true(这是默认返回值),否则为 false如果不应该的话。您可以访问当前和下一个状态和 Prop ,以比较并决定是否确实应该重新渲染。您不应出于其他原因使用此方法。
另一方面,componentWillReceiveProps
仅在 props 更改(或似乎已更改)时才会被调用。如果只有状态改变,则不会调用此方法。此外,这不会决定组件是否应该重新渲染。例如,您可以使用此方法更改某些状态或进行 API 调用。
查看这些链接:
componentWillReceiveProps
:https://developmentarc.gitbooks.io/react-indepth/content/life_cycle/update/component_will_receive_props.html
shouldComponentUpdate
:https://developmentarc.gitbooks.io/react-indepth/content/life_cycle/update/using_should_component_update.html
关于javascript - 为什么 React 保留了 componentWillReceiveProps 和 shouldComponentUpdate 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47531623/
请看一下我的代码。我尝试限制给定无状态组件的重新渲染,但这样做发现 shouldComponentUpdate 永远不会被调用。我已经从 styledComponents 中删除了包装器(之前有人报道
在文档中找不到与此相关的任何内容,我需要对父状态更改进行一些浏览器操作,而不重新渲染子组件。我可以在“shouldComponentUpdate”中执行此操作并让它返回 false,但只是想知道这对服
假设我有一个渲染子项的组件,但这些子项可以通过redux连接或基于计时器的更新组件。父组件不知道这一点。然而,父组件实现了 shouldComponentUpdate 来优化性能。 class Con
如何将 shouldComponentUpdate 用于状态? 我可以检查: shouldComponentUpdate(nextProps, nextState) { return this.s
我试图找出 React 生命周期方法 shouldComponentUpdate 最惯用的实现。我觉得我,可能还有其他人,并没有充分利用这种方法,因为它是可选的。 通常我想检查对象的 props 或
问题 我的父类包含项目列表并为列表中的每个项目呈现组件。当某些项目发生更改(即使只有一个)时,列表中的所有项目都将被重新渲染。 所以我尝试实现shouldComponentUpdate()。我正在使用
我有两个组件。一个是父组件(连接到 redux 的智能组件),另一个是在数组迭代中渲染的子组件。 每当从子组件分派(dispatch)某些 redux 操作时,存储中的状态就会更改,并且重新渲染整个元
我有两个组件。一个是父组件(连接到 redux 的智能组件),另一个是在数组迭代中渲染的子组件。 每当从子组件分派(dispatch)某些 redux 操作时,存储中的状态就会更改,并且重新渲染整个元
我使用 Reflux.connect 方法来改变组件状态,但我无法在 shouldComponentUpdate 中获取 nextState 和 this.state。实际上,当 shouldComp
假设我有一个应该每 6000 毫秒更新一次的 Timestamp 组件。这是基础: class Timestamp extends Component { static propTypes = {
我的 React 类 EventTable 有几种模式,根据模式,它从服务器获取不同的数据并将它们显示到 中。 .我首先让类显示静态数据并且它工作得很好,包括通过来自更高组件的 prop 切换 mo
我在项目中使用 react 运动动画。我通过维护状态解决了每次 Prop 更改时渲染动画的问题。 const {animation} = this.state; if (animati
我的代码有一个组件,它同时接受 props 并有自己的内部状态。 组件应仅在其 Prop 更改时重新渲染。状态更改不应触发重新渲染。 此行为可以通过基于类的组件和自定义 shouldComponent
我有一个像这样的高阶组件 // higherOrderComponent.js const HigherOrderComponent = Component => class extends Reac
LoDash 有精彩的 method _.isEqual。使用以下方法是个好主意吗: shouldComponentUpdate(newProps, newState) { return !_.i
我是 React 新手,只是想问一下组件的状态对象如何更新。经过分析一些代码,我认为: 在更新阶段,状态在 shouldComponentUpdate 方法之后但在 render 方法之前更新,我的理
如果我使用 Immutable.js,react-redux 仍然可以使用 shouldComponentUpdate 吗? connect()方法在shouldComponentUpdate()中使
我的组件加载中有多个 setState。我的页面在单击下拉值时重新呈现,因为单击时我通过 setState 存储这些值。 这里要停止点击时重新渲染,我使用下面的代码。 shouldComponentU
如果我使用 Immutable.js,react-redux 仍然可以使用 shouldComponentUpdate 吗? connect()方法在shouldComponentUpdate()中使
我正在开发一个 React 应用程序,并偶然发现了一种情况,如果我不使用 shouldComponentUpdate() 来阻止,我的组件就会不断地相互更新。我正在尝试确定这是否是处理此类更改的最佳方
我是一名优秀的程序员,十分优秀!