我是否应该根据需要下载所有数据以进行还原或请求?

问题描述:

我正在写我的第一个React Redux电子商务应用程序,我想知道什么是最佳实践,我应该下载所有数据还是使用服务器端分页。当用户进入路线“/产品”时,我检查是否有产品,如果没有,那么我会取回它们。我是否应该根据需要下载所有数据以进行还原或请求?

componentDidMount(){ 
    if(this.props.products.length <= 0){ 
     var token = this.props.auth.token; 
     this.props.actions.getProducts(token); 
    } 
} 

但我不确定是否应该下载所有产品(1,000)并将它们保存在商店或根据需要请求它们。例如:我下载了100个产品并获取所有页面,如果用户想要查看下一个100,我从服务器获取下一个100个产品。

我也将在其他形式的其他部分使用本产品。

您认为如何?

这些都是有效的方法。您的案件的“正确”将主要取决于正在检索的信息的类型。

例如,如果它是一小段信息的小列表,您可能希望通过一次检索所有内容来加快速度。

但是,如果您正在加载可能长的列表或信息“很重”(大量字段或大文本),则可能不希望客户端资源全部用完。没有人喜欢看到他们的网络和内存因为一个讨厌的页面而被吞噬。

我不知道你的数据,但有一千个产品似乎有点多。我的建议是:测量请求的大小,并决定是否值得一次加载所有内容。

+0

应该是什么产品的最大号码加我一次? – user3527318

+0

产品有多少个字节?将此数据乘以估计的将要检索的产品数量,添加一些json(?)开销,并且您将达到估计的请求大小。然后问问你自己的尺寸是否可以让用户接受。我无法为你回答这个问题。但放松一下,做出决定并继续前进,知道你可以在以后改变主意(对吗?)。 –

+0

听起来很好,谢谢! – user3527318

使用服务器端分页高次分量来处理从服务器获取数据。并检查中继和graphql他们让你重新考虑你的应用程序中的数据。下面良好执行力度 例如检查回购 1. https://github.com/reactjs/redux/tree/master/examples/real-world

4. https://github.com/emmenko/redux-react-router-async-example