Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Javascript 处理来自后端的react数据的最佳方法_Javascript_Node.js_Reactjs - Fatal编程技术网

Javascript 处理来自后端的react数据的最佳方法

Javascript 处理来自后端的react数据的最佳方法,javascript,node.js,reactjs,Javascript,Node.js,Reactjs,我有一个具有以下流程的web应用程序: 您在Investments屏幕中,呈现时它向某个服务器发出API请求,然后响应以投资对象数组的形式出现。然后,这些对象在屏幕中显示为列表。用户可以点击列表中的一项,以重定向到投资详情屏幕。“投资详细信息”屏幕有两个组件,它们需要当前投资的信息来显示一些图表 react路由器使用投资ID作为URL参数来处理重定向 我想知道哪种方式可以最好地利用当前投资的信息 我是说。我可以将用户从Investments重定向到Investments Details,然后使用

我有一个具有以下流程的web应用程序:

您在Investments屏幕中,呈现时它向某个服务器发出API请求,然后响应以投资对象数组的形式出现。然后,这些对象在屏幕中显示为列表。用户可以点击列表中的一项,以重定向到投资详情屏幕。“投资详细信息”屏幕有两个组件,它们需要当前投资的信息来显示一些图表

react路由器使用投资ID作为URL参数来处理重定向

我想知道哪种方式可以最好地利用当前投资的信息

我是说。我可以将用户从Investments重定向到Investments Details,然后使用URL参数向API发出请求,以获取与该投资相关的信息,然后将其传递给子组件,或者将用户选择的投资信息作为道具直接从“投资”传递到“投资详细信息”,并从“投资详细信息”传递到其子组件

我是在钻支柱吗? 在这种情况下,是否不需要再次调用API


提前感谢。

出于不同的原因,您必须同时使用这两种方法:

  • 将已经可用的数据传递到下一页。这可以通过使用状态管理库来实现,最流行的是Redux。这样可以避免不必要地发出另一个xhr请求。此外,您的用户可以随时获得这些数据,并且在屏幕之间没有延迟切换时,用户坚持使用您的产品的可能性要高得多

  • 现在假设您位于投资详情页面;只要用户停留在同一个应用程序中并且不刷新页面,我们在第1页的redux中存储的数据将可用,因为这样做会将存储重置为初始状态。您可以将其保存在本地存储中,但这取决于数据的敏感程度和大小。如果您决定不存储数据,那么您可以根据URL中可用的ID仅获取该特定投资的数据


  • 依我看,你的解决方案没有错。您基本上有两个选项,要么存储(缓存)在投资屏幕上已经获取的数据,要么在到达“详细投资”屏幕时重新获取数据。这两种方法都没有错,但它们都有一些警告。1) 存储/缓存数据(如本地存储)意味着您必须担心数据会过时。2) 如果api调用需要一段时间才能完成,那么重新获取数据可能会成为一项昂贵的操作。它很敏感,因此我无法使用localstorage。将状态管理与redux结合使用是理想的,但即使用户刷新页面,我也需要获取数据。在深入分析之后,我决定使用“双API调用”方法。谢谢你的回复。