首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对道具中的更改进行React呈现行为?

如何对道具中的更改进行React呈现行为?
EN

Stack Overflow用户
提问于 2020-01-26 12:37:19
回答 2查看 31关注 0票数 0

假设我们有这样一个组件:

代码语言:javascript
运行
复制
const MyComponent = ({height, children}) => (
  <div style={{ height }}>{children}</div>
)

现在,当height支柱被更改时,是否会重新呈现整个组件,还是只会更改已经呈现的div的高度?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-26 12:46:10

React有一个“diffing”算法,通常是冷调节,这样组件更新是可预测的,而对于高性能的应用程序来说,更新速度足够快。

当您使用React时,在单个时间点上,您可以将render()函数看作是创建一棵React元素树。在下一个状态或道具更新中,该render()函数将返回一个不同的React元素树。然后,React需要找出如何有效地更新UI以匹配最近的树。 当区分两棵树时,首先对两个根元素进行比较。根据根元素的类型,行为是不同的。 当比较两个相同类型的React元素时,React会查看这两个元素的属性,保持相同的基础DOM节点,并且只更新更改的属性。

有一个正式文件中的文章详细解释了它的工作原理。

票数 1
EN

Stack Overflow用户

发布于 2020-01-26 12:43:16

React根据Virtual的原理工作,当您更改任何影响虚拟DOM的属性时,react将新创建的虚拟DOM与它先前呈现的虚拟DOM进行比较,并决定需要进行哪些更改。

由于在本例中仅更改了“高度”属性,因此React将在原始DOM中更新该属性,而不是重新呈现和更改任何其他DOM元素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59918389

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档