Flux+React:何时在商店中保持视觉组件的状态
Flux + React: when to keep state of visual components at store
有时并不明显:我应该在哪里保持React视图的状态,即活动选项卡、选定选项、切换符值,输入验证标志
实际上有两种选择:
- 执行操作并将数据保存在存储中
- 将该数据保留为视图的状态
他们中哪一个更好?存储是否仅用于来自服务器的数据
我的注意事项:
- 保存这些数据是不好的,因为这会导致一连串的行动。示例:您需要下载选项卡选择的数据,因此您触发一个操作
NEW_TAB_SELECTED
,并从处理该操作的存储中触发一个新的操作DOWLOAD_TAB_DATA
- 保持数据在视图中可以避免第一个动作(
NEW_TAB_SELECTED
)并避免动作链。但是,如果我想离开这个视图,如何保留选中的选项卡
应该保持组件状态的东西是只影响该组件的东西。
因此,例如,如果您有一个打开以显示更多内容的组件,那么isOpen
标志可以保持在状态,因为它是组件内部的。
如果信息不是组件的一部分(例如消息的文本以及消息是否已被阅读),则应将其保存在商店中,并根据需要在应用程序中传播。
更改组件的状态将导致其重新绘制,因此请尽量将状态保持为其状态的尽可能小的表示形式,并仅将这些属性存储在this.state
中。
因此,根据我从您的问题中收集到的信息,我建议保持活动选项卡、选定选项、切换符值以及输入是否在this.state
中验证。它们都是组件的属性,但不会影响任何其他组件。我会把填充视图的数据保存在商店里。我会在this.state
中保留指示视图状态的标志。
希望能有所帮助。
相关文章:
- React重新渲染但未显示正确的组件
- 不能从angular2中的子组件指定父组件中的数组
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- React组件等待所需道具进行渲染
- 如何创建带有插槽的vue js组件预加载程序
- KnockoutJS-组件-多个实例
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在react js中将值从一个组件发送到另一个组件
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- React组件-设置页面标题
- 我的shareService在angular 2中发送值工作正常,但当我渲染我的另一个组件时,会获得默认值
- 如何在salesforce aura闪电组件中使用jQuery.val()
- 为react组件传递道具的最佳方式
- [Vue warn]:未能解析组件
- 如何控制组件'的createContent函数被激发
- react组件中的绑定方法
- 如何在react js中移动第二个组件
- 多个组件是如何实现的
- 使用视觉力组件从阵列中删除重复项
- Flux+React:何时在商店中保持视觉组件的状态