Javascript 什么';对于需要大量任意数据映射的react redux应用程序来说,它是一个很好的体系结构?
假设您正在制作一个显示电影数据的应用程序,您从服务器以以下格式获取:Javascript 什么';对于需要大量任意数据映射的react redux应用程序来说,它是一个很好的体系结构?,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,假设您正在制作一个显示电影数据的应用程序,您从服务器以以下格式获取: { movies: [], actors: [], directors: [], years: [] } 不同的阵列通过ID相互关联。换句话说,电影中的对象如下所示: {title: 'The Shining', cast: [`837392010`, `363893920` ...], ...} cast数组中的每个id都是对actors数组中的actor的引用 您可以按原样将数据放在redux存储中,但不同的组件需要以
{ movies: [], actors: [], directors: [], years: [] }
不同的阵列通过ID相互关联。换句话说,电影中的对象如下所示:
{title: 'The Shining', cast: [`837392010`, `363893920` ...], ...}
cast数组中的每个id都是对actors数组中的actor的引用
您可以按原样将数据放在redux存储中,但不同的组件需要以不同的任意方式使用它。例如,一个组件需要列出20世纪70年代杰克·尼科尔森(Jack Nicholson)出演的所有电影,尽管年份数组与演员没有直接关联。它只是链接到电影,电影本身也链接到演员。因此,在组件可以渲染之前,它需要运行一系列数据转换
另一部分列出了马丁·斯科塞斯(Martin Scorsese)和罗伯特·迪内罗(Robert DiNero)合作的所有时间,另一部分列出了片名中带有“火”的所有电影,另一部分列出了汤姆·汉克斯(Tom Hanks)在1990年至2000年间的所有电影
产品经理计划随时添加和删除这样的任意显示,因此,应用程序中会使用日期,就像可查询的数据库一样。具体的查询将经常更改
我们还可以说,转换必须在客户机上完成。服务器的唯一功能是以上述标准化形式发送数据
构建这样一个应用程序的最佳方式是什么,这样它就可以扩展并易于更新?我可以想出几种方法:
明确建议查看Async Redux示例()。具体地看一个reducer(),在这里我们可以传递任何实体,它只是被任意放置在状态上。您的组件状态太通用了。因此,您必须进行大量昂贵的计算才能获得所需的数据,而后端的数据库可以非常高效地为您提供这些数据。因此,我会更仔细地观察你的应用程序需要显示什么样的关系,然后使你的状态树更接近这些关系。我认为主要的问题是,随着你的应用程序的增长,越来越多的视图依赖于层次状态的某些部分,当这些值发生变化时,你的应用程序将不得不重新计算。当这些计算代价高昂时,性能自然会受到影响。