首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在forceUpdate中使用setState比setState()慢吗?

在forceUpdate中使用setState比setState()慢吗?
EN

Stack Overflow用户
提问于 2016-12-10 10:33:05
回答 1查看 1.1K关注 0票数 1

我正在尝试构建一个不使用ReactJS组件状态或道具来显示数据的ReactJS应用程序。相反,我使用支持将模型传递到组件,以便将self绑定到组件,并在模型数据更改时重新呈现。

我希望保持组件状态‘干净’,这样组件的状态将只包含有关用户体验相关内容的数据。如果您熟悉Firebase,这些应用程序的工作原理非常类似于使用Firebase构建一个react应用程序,但是它应该更具有声明性。

因为我不使用component.setState({...}),所以我想使用component.forceUpdate。我已经读过很多次了,您不应该使用这个方法,因为它跳过了生命周期方法,但是这是一个实验。

我现在最感兴趣的是,它是否比setState慢,并且在强制进行更新时,ReactJS是否做同样的智能DOM区分?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-10 16:30:15

React的forceUpdate()并不比setState()慢。

它的使用相同的智能DOM“差分”算法,这样组件更新是可预测的,同时对于高性能的应用程序来说足够快。

调用forceUpdate()将导致在组件上调用render(),从而跳过shouldComponentUpdate()。这将触发子组件的正常生命周期方法,包括每个子组件的shouldComponentUpdate()方法。只有在标记发生更改时,React才会更新DOM。

PS:是的,通常您应该尽量避免使用forceUpdate(),并且只从组件的render()方法中的this.propsthis.state读取。

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

https://stackoverflow.com/questions/41074525

复制
相关文章

相似问题

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