【问题标题】:How to configure a list of API requests per screen in React Native如何在 React Native 中配置每个屏幕的 API 请求列表
【发布时间】:2018-01-07 05:26:03
【问题描述】:

在这一点上,我不太确定我想做的事情是否被推荐,或者它是否有一个模式名称。

我目前有一个移动应用程序作为前端。它显示了可以从后端配置的卡片提要。我可以说要显示哪些卡片,哪些信息等。

现在,问题是我一次加载它们。对于熟悉 React Native 的人,我使用 ScrollView 来一次自动呈现所有卡片/请求。

我想通过每页有一个请求来改进这一点,并且响应应该返回实际加载信息的 API 请求列表。

就像第一个 API 请求带来屏幕的配置,然后使用 ListView 来显示每个请求。不同之处在于每个请求都应该在它们出现在屏幕上时实际加载。另外,我可以支持分页。

是否有任何框架可以提供帮助?最佳实践?

谢谢

PS。我知道这可能是基于意见的,但我想了解这是否已经有一个可以为我做这件事的模式名称或框架。

【问题讨论】:

    标签: android node.js react-native mobile


    【解决方案1】:

    在每个屏幕上触发一个 API 请求,只是为了告诉屏幕要发出哪些其他 API 请求,这是非常低效的。听起来你想要一个在 API 端带有分页的无限滚动视图,所以你可以每次加载合理数量的记录,然后随着用户滚动,在下面加载更多。

    https://github.com/expo/react-native-infinite-scroll-view 有一个很好的 RN 包,文档非常好,但基本上关键道具是 canLoadMore,它告诉滚动视图是否应该尝试加载更多内容,或者它是否位于end 和onLoadMoreAsync,您可以在其中提供异步函数来获取下一页记录。

    希望有帮助!

    【讨论】:

    • 好点。问题是,假设你有 3 张卡,其中一张需要更长的时间来加载,我希望那张卡不会影响其余的卡。如果我有一个请求,你就会阻止其余的请求。
    • 我明白了,每张卡片也是它自己的滚动视图吗?是否像单个屏幕上的选项卡结构?听起来它们确实应该是单独的请求,但我很想加载第一张卡片的第一页,然后在加载后为其他卡片触发第一页,这样当用户导航到它们时,该初始内容已加载,其余内容将通过其他页面按需加载。
    • 我刚刚也发现了上面的一点,你说卡片本身可以从后端配置,所以在这种情况下,听起来你需要一个额外的请求来通知应用程序什么卡片可用 - 您也可以在该请求中包含默认卡的第一页结果,因此最初它仍然只是一个请求。或者,如果卡配置不经常更改,那可能只是您在应用启动时在后台加载的内容。
    • 没有滚动视图,因为这会产生很多问题。他们有固定的高度。想象一下 Facebook 提要,其中有许多不同的“卡片”,如状态、图像、视频等。现在,想象其中一个只需要大量时间来实际呈现/加载信息。我想延迟加载那张卡。由于配置将来自后端,我需要向应用程序发送要加载的卡片配置列表,因为每张卡片都有一个要获取的 api。这样更有意义?
    • 是的,听起来你走在正确的道路上 - 我想如果你能找到一种方法在第一次调用中包含初始默认数据集(“加载加载程序列表”),只是为了避免在显示任何数据之前需要两次调用(卡片列表,第一张卡片),这将是更好的用户体验。其余的正如您所说,您可以按需加载。内置的后端是什么?也值得查看性能分析,以确保这些初始调用尽可能高效和快速 - 我的网络专业知识是 Ruby on Rails,所以如果你正在使用它,我也可以给你一些建议。
    猜你喜欢
    • 2019-08-11
    • 1970-01-01
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2021-10-06
    • 1970-01-01
    • 2019-01-18
    相关资源
    最近更新 更多