Reactjs 避免在React Flux应用程序中复制数据(存储和组件中)?
我正在启动一个基于Flux的项目,但我注意到一些困扰我的事情 假设我有一个游戏列表,所以我有Reactjs 避免在React Flux应用程序中复制数据(存储和组件中)?,reactjs,components,store,flux,Reactjs,Components,Store,Flux,我正在启动一个基于Flux的项目,但我注意到一些困扰我的事情 假设我有一个游戏列表,所以我有gamesstore和一个组件-HomepageGames,它监听该存储 因此,当应用程序加载时,它将从服务器中取出游戏并将它们保存在商店中,然后React组件将它们也置于它的状态。所以我将在两个地方举行比赛 但是。。。游戏有很多。。。数百人 此外,我有一个URL列表,我正在拉和建立两个导航-页眉和页脚。因此,我将在三个位置设置URL—导航存储和两个导航组件 而且链接也可以是几百个 那么,我如何避免这种记
games
store和一个组件-HomepageGames
,它监听该存储
因此,当应用程序加载时,它将从服务器中取出游戏并将它们保存在商店中,然后React组件将它们也置于它的状态。所以我将在两个地方举行比赛
但是。。。游戏有很多。。。数百人
此外,我有一个URL列表,我正在拉和建立两个导航-页眉和页脚。因此,我将在三个位置设置URL—导航
存储和两个导航组件
而且链接也可以是几百个
那么,我如何避免这种记忆膨胀。。。否则我就必须进行核对了?如果您是从商店获得游戏列表,那么您并不是在从商店复制游戏列表。默认情况下,使用Javascript,您将在组件中获得此列表的引用 因此,如果您要在
主页游戏中执行此操作
:
componentDidMount: function() {
this.setState({
games: GameStore.getAllGames()
});
}
内存中仍然只有一个游戏列表
您的组件在GamesStore
中有一个列表的参考。尝试在组件的列表中添加一些游戏,您将在商店中看到您的列表也将更改
在大多数情况下,这是一种不受欢迎的行为。许多人使用像Immutable
这样的lib来避免这种引用。但对你来说,这似乎是个好主意