Has*_*aki 9 javascript architecture hierarchical-data flux redux
我正在尝试使用Redux构建一个复杂的全动态应用程序.我的意思是我的应用程序有很多动态生成的表单,其中包含生成的字段 - 即时组件.我想在我的Redux商店中存储有关我的组件的可视数据.但是,如果不将实际数据与可视化组件数据混合,我该怎么办呢?
例如,如果我有这样的结构
Store {
visual: {...deeply nested visual-data-tree...},
data: {...deeply-nested real-data-tree...}
}
Run Code Online (Sandbox Code Playgroud)
渲染组件很困难,因为我需要先搜索可视数据,然后在两棵树中对组件"值"进行反应.
但如果有一个类似于此的结构:
Store {
form {
visual: {...form visual data...},
data: {
//Ok here the form "data" - widgets. Or it must to be visual? :)
widget1 {
visual: {type:"ComboBox", opened: true},
data: 1
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
你看到了问题,现在我在Form小部件的真实数据中有可视数据.
(表格 - 数据 - widget1 - 视觉)
真实数据中的可视数据超出了概念.
你们如何解决混合数据的相同问题?
对我可怜的英语真的很抱歉.我希望我清楚地解释了这个问题.
Dan*_*mov 14
是不是肤浅的区别?我认为一个更重要的规则是该州的数据应该规范化.例如,如果您有Combobox小部件让您选择用户,那么您的数据形状会更好
{
chosenUserId: 10, // Good!
users: {
10: { name: 'Alice' }
}
Run Code Online (Sandbox Code Playgroud)
而不是
{
chosenUser: { name: 'Alice' }, // Bad!
users: {
10: { name: 'Alice' }
}
Run Code Online (Sandbox Code Playgroud)
如果数据在状态树中重复,则很难正确更新它并避免不一致.
只要你保持数据标准化,我认为没有必要划分visual和data.您可能希望拥有看起来像数据库的顶级实体缓存(例如entities,包括users,posts或者您的应用程序使用的任何数据对象),但除此之外,请选择在检索相关状态时感觉最舒适的状态.
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |