【问题标题】:React, conceptual concern: Children vs (grand)parents maintaining states反应,概念上的关注:孩子和(祖父母维持状态
【发布时间】:2015-09-14 22:09:22
【问题描述】:

我听说在 React 中,最好将状态保持在尽可能高的位置,并且不要将它们放在子级上。这通常是真的吗?让孩子成为保持自己状态的自我意识组件对我来说似乎很有意义。有人可以解释这个概念以及为什么对父母有状态更好吗?

我将举一个我现在正在做的事情的例子:

我有一个文件上传器,其中有一个文件放置区,当一个文件被放置在它上面时,它会告诉父级文件已被删除,这反过来会设置一个包含文件列表的状态,该列表被传递down 作为上传队列组件的道具,该组件包含多个FileUpload 组件(进度条/上传进程)。那些FileUpload 组件有自己的进度状态。向上跟踪似乎没有意义。

也许有人可以更深入地了解这种方法。

【问题讨论】:

    标签: reactjs


    【解决方案1】:

    我不知道我是否听说过“保持状态尽可能高”,而是将状态保持在其孩子共享相同状态的父级中。我觉得你做得很好。

    【讨论】:

      【解决方案2】:

      您说的是具有单向数据流的 Flux 应用程序架构。

      建议你阅读 Flux 的官方文档,了解数据流图。基本上,您有一个主要组件来保存应用程序的部分功能,例如文件上传器,并且只有该组件通过更新其自身状态来从 Store 接收数据。主要组件通过道具将该数据传递给孩子。子组件永远不应该更新他自己的状态,如果您需要更新子组件中的某些内容,您会向商店发出一个操作来更新主组件的状态。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-30
        • 2018-01-13
        • 2020-04-06
        • 2018-11-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多