reactjs - 为什么这个渲染很慢?反应
问题描述
我有一个 api,它可以根据某处的国家/地区获取名称(用户名)。
/names/{countryName}
并且 UI 有两个选项卡 -beingAustralia
和India
. 为此,我在反应中使用材料 ui 选项卡。
一旦用户单击 India,它就会调用/names/India
并获取一个名称列表(接近 200 个)。同样,它也适用于澳大利亚。
当调用后端时,我在前端显示一个加载器。然后我将结果存储names
在 state 中调用的对象中。names['India']
并且names['Australia']
是一个包含 200 个值的数组。这些名称显示在表格中,其中包含名称和从名称生成的随机图像。这一切都很好。
当用户来回切换选项卡时,问题就开始了。由于数据已经存在于该状态中,因此不会进行新的调用。但即便如此,渲染也很慢。它保留在旧选项卡上,直到呈现新选项卡中的数据,然后才切换到新选项卡,这会误导最终用户。
我正在考虑使用react-window-infinite-loader
,但是当您逐页获取数据并且 api 以这种方式返回数据时,这会更有用。但是现在,数据无论如何都存在于状态中。为什么渲染它需要这么长时间,我该如何避免这种情况?
解决方案
推荐阅读
- c - VSCode - 禁用 C 代码的注释自动格式化
- mysql - 如何更新列而不返回超过 1 行或不使用要更新的表的连接?
- python - 谁能帮忙?我想将此 for 循环转换为递归版本
- flutter - Flutter web 按钮大小问题
- shell - 命令 CFLAGS=... make" 不起作用
- php - 如何使用带有 $_SERVER['REQUEST_URI'] 的友好 url 强制 https?
- wpf - 当表单中没有剩余空间时,对齐下一行中的按钮
- python - 如何在 MySQL python 执行中有两个用户输入,其中 WHERE 条件是 1 个用户输入,而更新的 VALUES 是另一个?
- substrate - 在 Substrate 中,`spec_version` 和 `authoring_version` 有什么区别?
- php - 将两个不同的数组数据合并到一个数组php中