reactjs - React:有没有办法缓存组件或防止每次渲染时出现多余的 HTTP 调用
问题描述
下面的简单代码沙箱显示导航到组件会触发新的渲染。React 分析器指出组件已被渲染,因为它们是第一次连续出现。我理解这是正确的 React 行为,因为每个安装/渲染都会生成触发重新渲染的新方法引用。然而,这意味着尽管没有任何改变,但仍会发出几个 http 请求。有什么方法可以防止每次用户导航到组件时都发出这些请求?
在codesandbox
我尝试使用React.memo
withuseCallback
时,都没有重用初始渲染。
单击console
选项卡以查看每次组件呈现时,它都会进行新的 ajax 调用。
https://codesandbox.io/s/github/pstephenwille/react-render-question
解决方案
为了避免多余的 HTTP 调用,您必须验证您的源服务器没有更新您的本地数据。如果您真的只想触发一次 HTTP 调用,您可以例如在您的App
组件中执行它们或将状态和回调函数传递给您的Foo
和Bar
屏幕组件,以确保单个调用
推荐阅读
- reactjs - React loadable 可与两个 repos/create-react-app 一起使用
- python - 我使用 HitCount 创建了一个计数器并在导入事务 django.db 中出错
- ios - 如何使用 fastlane 扫描设置 COMPILER_INDEX_STORE_ENABLE=NO?
- pandas - 如何将 periodindex 用于列名
- django - 在管理视图中更改 Django 模型名称索引
- sqlite - Access 中的 SQLite 链接表仅在插入新值后才给出 #Deleted 值
- c++ - 括号检查器完美地适用于单个测试用例,但对于所有测试用例一起它会给出分段错误?
- java - RxJava插入&返回Id方法(房间)调试
- ansible - Ansible 子组变量不覆盖父组变量
- mysql - SQL case 语句 - 根据其他 2 个表从第三个中选择值