Flux / React文档和示例似乎都指向setState作为首选解决方案,但我与一些同事在工作中进行了有趣的对话,并想知道是否有其他人遇到了
编辑:
你可以看到我在这里url说的:
https://github.com/facebook/flux/blob/master/examples/flux-chat/js/components/ThreadSection.react.js
注意ThreadSection是一个子组件,即直接从商店获取数据并将其用作状态。
如果你遵循React“方式”,我会期望状态由商店管理 – 而不是子组件。
我们想到的解决方案是获取顶层组件中的所有商店(作为道具),并根据需要将它们传递给子组件。但是这变得相当丑陋,很快。
我们这样做是因为setProps不适用于子组件
状态组件可以具有3种状态:初始状态,用户输入状态和数据存储状态。
有状态的组件就像你正在组装的“小部件”中的小入口点。对于下游依赖或数据注入,不再有单个应用程序范围的入口点,因为所有这些小部件都有自己的独立生命周期。这就是为什么他们自己需要访问&听商店。
除了行为属性,有状态组件不通过上游属性接收实际数据。
状态组件管理自己的状态,并将其传递给子级通过下游属性渲染。
状态组件通常不直接呈现html DOM元素。它们更像MVC中的控制器,并使用其他转储组件(如MVC中的视图)来实际呈现DOM元素。
Dumber组件就像视图,所以它们只包含渲染DOM元素的逻辑。将它们看作handlebars.js模板,它只接收属性,只是将它们转换为DOM元素,可能带有循环等。它们是无状态渲染器。
希望这回答你的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。