加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – React Flux – 应该存储数据存储在组件状态还是道具

发布时间:2020-12-15 06:36:38 所属栏目:百科 来源:网络整理
导读:如果通量存储是保持数据状态的单例,为什么组件在访问存储时使用setState和not setProps?这不是意味着我开始在两个(或更多)地方保存应用程序状态? Flux / React文档和示例似乎都指向setState作为首选解决方案,但我与一些同事在工作中进行了有趣的对话,并
如果通量存储是保持数据状态的单例,为什么组件在访问存储时使用setState和not setProps?这不是意味着我开始在两个(或更多)地方保存应用程序状态?

Flux / React文档和示例似乎都指向setState作为首选解决方案,但我与一些同事在工作中进行了有趣的对话,并想知道是否有其他人遇到了

编辑:
你可以看到我在这里url说的:
https://github.com/facebook/flux/blob/master/examples/flux-chat/js/components/ThreadSection.react.js

注意ThreadSection是一个子组件,即直接从商店获取数据并将其用作状态。

如果你遵循React“方式”,我会期望状态由商店管理 – 而不是子组件。

我们想到的解决方案是获取顶层组件中的所有商店(作为道具),并根据需要将它们传递给子组件。但是这变得相当丑陋,很快。

我们这样做是因为setProps不适用于子组件

理解你应该有2种组件。有状态的组件和视图组件。

状态组件可以具有3种状态:初始状态,用户输入状态和数据存储状态。

有状态的组件就像你正在组装的“小部件”中的小入口点。对于下游依赖或数据注入,不再有单个应用程序范围的入口点,因为所有这些小部件都有自己的独立生命周期。这就是为什么他们自己需要访问&听商店。

除了行为属性,有状态组件不通过上游属性接收实际数据。

状态组件管理自己的状态,并将其传递给子级通过下游属性渲染。

状态组件通常不直接呈现html DOM元素。它们更像MVC中的控制器,并使用其他转储组件(如MVC中的视图)来实际呈现DOM元素。

Dumber组件就像视图,所以它们只包含渲染DOM元素的逻辑。将它们看作handlebars.js模板,它只接收属性,只是将它们转换为DOM元素,可能带有循环等。它们是无状态渲染器。

希望这回答你的问题。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读