- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当使用 setState()
调用更新组件时,即使 shouldComponentUpdate()
返回 false,React 如何为组件创建新的虚拟 DOM?
React 是否会为所有组件再次创建虚拟 DOM,即使是未调用 setState()
的组件?我的意思是假设在子组件上调用 setState()
,是否也会为父组件 react 一个新的虚拟 DOM?
最佳答案
Does react create virtual dom even when shouldComponentUpdate returns false ?
不,没有。如果 shouldComponentUpdate
返回 false,则不会完成该特定组件及其子组件的重新渲染。
Does react create virtual dom again for all components, even for component on which setstate is not called.
它将为那些状态或属性已更改的组件(及其子组件)创建。但这并不一定意味着实际的 DOM 更新将会发生。同样如上所述,如果这些组件中的任何一个从 shouldComponentUpdate
返回 false,则该组件及其子树的重新渲染将停止。
I mean suppose setstate is called on child component, does react new virtual d for parent component also
没有。父级导致子级重新渲染,而不是相反。 React 仅重新渲染该子树。不是它的根源。
也就是说,重新渲染(虚拟 DOM 创建)并不总是意味着 DOM 更改。如果子树的先前虚拟 DOM 和新虚拟 DOM 相同,则实际 DOM 保持不变。
React 在其 docs 中使用非常清晰简洁的示例对此进行了解释。 。
关于javascript - ShouldComponentUpdate 和虚拟 DOM 使用react,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56450692/
请看一下我的代码。我尝试限制给定无状态组件的重新渲染,但这样做发现 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() 来阻止,我的组件就会不断地相互更新。我正在尝试确定这是否是处理此类更改的最佳方
我是一名优秀的程序员,十分优秀!