gpt4 book ai didi

javascript - ReactJS:PureRenderMixin 插件脚注 - 矛盾?

转载 作者:行者123 更新时间:2023-11-30 12:29:31 27 4
gpt4 key购买 nike

来自此处的文档:http://facebook.github.io/react/docs/pure-render-mixin.html

脚注说如果复杂数据(深层数据结构)的结构发生变化,你应该使用forceUpdate()

根据 pure 的定义:它在给定相同的 props 和 state 的情况下呈现相同的结果

我越来越认为这是一个矛盾,因为如果数据结构发生变化,则意味着您正在提供新的 Prop /状态。因此该组件不再是“纯”的。

在我看来,如果您更改传递给组件的 Prop 或状态,您可以:

use forceUpdate().
remove PureRenderMixin from the mixins.

因此,在幕后……您正在将纯组件转换为“非纯”组件。因此,删除 PureRenderMixin 应该是唯一可用的选项。

我说得对吗?或者 Pure 组件意味着该组件在提供相同 Prop 时被“缓存”并重用?

抱歉,我在这里有点困惑。

最佳答案

PureRenderMixin 用于让 React 知道它不应不必要地调用您的 render 方法。例如,如果您的 render 方法足够复杂,并且您的组件未使用相同的 Prop /状态重新渲染,它可以提升您的性能。

但是,就像文档中所说的那样,PureRenderMixin 不会比较深层嵌套的数据结构,因此它可能不会调用您的 render 函数,因为它应该有,因为一些嵌套结构实际上发生了变化。

在这些情况下,最好不要使用 PureRenderMixin 并使用 shouldComponentUpdate 并执行您自己的比较逻辑。

此外,从文档中,您 should avoid using forceUpdate .

关于javascript - ReactJS:PureRenderMixin 插件脚注 - 矛盾?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28192711/

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