【问题标题】:React Antdesign performance optimisationReact Antdesign 性能优化
【发布时间】:2019-04-20 02:49:19
【问题描述】:

似乎改变了一个 antd 组件,会触发页面上所有其他组件的重新渲染。 React.PureComponent 不起作用,当您将 antdesign 组件放入其中时 - 它不允许输入文本,因为没有更改状态和道具。

我看到的唯一解决方法是在 shouldComponentUpdate 中添加额外的逻辑,或者使用 onChange 方法为每个字段维护本地状态。

维护所有字段的状态,这让我很头疼。有没有人运行包含许多 antdesign 项目的大型应用程序,以便我至少可以了解何时进行优化?

目前我有大约 60 个 antdesign 组件的表单,在输入时,它会挂起一段时间。

【问题讨论】:

  • React.PureComponent 不起作用...您能否详细说明为什么您认为它对您不起作用?如果可能,提供一个小的工作示例?
  • @MaazSyedAdeeb 抱歉,我认为 React.PureComponent 会起作用,如果为每个带有 onChange 回调的 antd 组件设置状态。但它不允许在父状态更改时轻松触发组件更新。在shouldComponentUpdate 中,很容易检查来自父道具或状态的任何场景,而忽略其余部分

标签: reactjs antd


【解决方案1】:

由于没有人回答,我会发布答案,这是我在试验时想出的。 如果需要,使用shouldComponentUpdate 结合本地状态和父状态似乎是可行的方法。

在每个字段上,我都附加了onChange 事件以更改组件的本地状态。然后在shouldComponentUpdate 内部检查 nextState 是否等于当前状态。

如果您还需要根据父状态检查某些内容,请通过 props 传递。

我个人不喜欢这种方法,但想不出更好的方法。 如果您觉得有更好的方法,我会很高兴听到不同的意见。

【讨论】:

    猜你喜欢
    • 2020-08-04
    • 1970-01-01
    • 2022-07-12
    • 1970-01-01
    • 2013-03-17
    • 2016-05-14
    • 2011-10-17
    • 2014-01-08
    • 1970-01-01
    相关资源
    最近更新 更多