gpt4 book ai didi

javascript - ShouldComponentUpdate 和虚拟 DOM 使用react

转载 作者:行者123 更新时间:2023-12-02 23:32:12 25 4
gpt4 key购买 nike

当使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com