reactjs – React Flux – 应该存储数据存储在组件状态还是道具
如果通量存储是保持数据状态的单例,为什么组件在访问存储时使用setState和not setProps?这不是意味着我开始在两个(或更多)地方保存应用程序状态?
Flux / React文档和示例似乎都指向setState作为首选解决方案,但我与一些同事在工作中进行了有趣的对话,并想知道是否有其他人遇到了 编辑: 注意ThreadSection是一个子组件,即直接从商店获取数据并将其用作状态。 如果你遵循React“方式”,我会期望状态由商店管理 – 而不是子组件。 我们想到的解决方案是获取顶层组件中的所有商店(作为道具),并根据需要将它们传递给子组件。但是这变得相当丑陋,很快。 我们这样做是因为setProps不适用于子组件
理解你应该有2种组件。有状态的组件和视图组件。
状态组件可以具有3种状态:初始状态,用户输入状态和数据存储状态。 有状态的组件就像你正在组装的“小部件”中的小入口点。对于下游依赖或数据注入,不再有单个应用程序范围的入口点,因为所有这些小部件都有自己的独立生命周期。这就是为什么他们自己需要访问&听商店。 除了行为属性,有状态组件不通过上游属性接收实际数据。 状态组件管理自己的状态,并将其传递给子级通过下游属性渲染。 状态组件通常不直接呈现html DOM元素。它们更像MVC中的控制器,并使用其他转储组件(如MVC中的视图)来实际呈现DOM元素。 Dumber组件就像视图,所以它们只包含渲染DOM元素的逻辑。将它们看作handlebars.js模板,它只接收属性,只是将它们转换为DOM元素,可能带有循环等。它们是无状态渲染器。 希望这回答你的问题。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- postgreSQL 自动递增序号
- sqlite的使用方法和函数
- ruby-on-rails – “rails generate model”挂起
- objective-c – 需要更多关于__autoreleasing使用的解释
- Ajax使用FormData对象实现无刷新上传文件
- XMLP之开发笔记
- /usr/lib/ruby/1.9.1/net/protocol.rb:146:在`rbuf_fill中
- c# – 通过HSSF.EventUserModel使用受保护的书籍和工作表读
- Cocos2d-x学习笔记(十三)—— 数据解析(json/xml)
- ruby – 撬开像[??ü???ü?](utf-8编码)这样的字符? (可能