Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 避免在React Flux应用程序中复制数据(存储和组件中)?_Reactjs_Components_Store_Flux - Fatal编程技术网

Reactjs 避免在React Flux应用程序中复制数据(存储和组件中)?

Reactjs 避免在React Flux应用程序中复制数据(存储和组件中)?,reactjs,components,store,flux,Reactjs,Components,Store,Flux,我正在启动一个基于Flux的项目,但我注意到一些困扰我的事情 假设我有一个游戏列表,所以我有gamesstore和一个组件-HomepageGames,它监听该存储 因此,当应用程序加载时,它将从服务器中取出游戏并将它们保存在商店中,然后React组件将它们也置于它的状态。所以我将在两个地方举行比赛 但是。。。游戏有很多。。。数百人 此外,我有一个URL列表,我正在拉和建立两个导航-页眉和页脚。因此,我将在三个位置设置URL—导航存储和两个导航组件 而且链接也可以是几百个 那么,我如何避免这种记

我正在启动一个基于Flux的项目,但我注意到一些困扰我的事情

假设我有一个游戏列表,所以我有
games
store和一个组件-
HomepageGames
,它监听该存储

因此,当应用程序加载时,它将从服务器中取出游戏并将它们保存在商店中,然后React组件将它们也置于它的状态。所以我将在两个地方举行比赛

但是。。。游戏有很多。。。数百人

此外,我有一个URL列表,我正在拉和建立两个导航-页眉和页脚。因此,我将在三个位置设置URL—
导航
存储和两个导航组件

而且链接也可以是几百个


那么,我如何避免这种记忆膨胀。。。否则我就必须进行核对了?

如果您是从商店获得游戏列表,那么您并不是在从商店复制游戏列表。默认情况下,使用Javascript,您将在组件中获得此列表的引用

因此,如果您要在
主页游戏中执行此操作

componentDidMount: function() {
   this.setState({
       games: GameStore.getAllGames()
   });
}
内存中仍然只有一个游戏列表

您的组件在
GamesStore
中有一个列表的参考。尝试在组件的列表中添加一些游戏,您将在商店中看到您的列表也将更改

在大多数情况下,这是一种不受欢迎的行为。许多人使用像
Immutable
这样的lib来避免这种引用。但对你来说,这似乎是个好主意