![](/img/trans.png)
[英]React Components child component render twice - any way to fix this?
[英]React: Is there any way to cache components or prevent redundant HTTP calls with each render
下面的简单代码沙箱显示导航到组件会触发新的渲染。 React 分析器指出组件已被渲染,因为它们是第一次连续出现。 我理解这是正确的 React 行为,因为每个安装/渲染都会生成触发重新渲染的新方法引用。 然而,这意味着尽管没有任何改变,但仍会发出几个 http 请求。 有什么方法可以防止每次用户导航到组件时都发出这些请求?
在codesandbox
,我尝试使用React.memo
和useCallback
,并且都没有重用初始渲染。
单击console
选项卡以查看每次组件呈现时,它都会进行新的 ajax 调用。
https://codesandbox.io/s/github/pstephenwille/react-render-question
为了避免多余的 HTTP 调用,您必须验证您的源服务器没有更新您的本地数据。 如果你真的只想触发一次 HTTP 调用,你可以在你的App
组件中执行它们,或者传递一个 state 和一个回调 function 来确保你的Foo
和Bar
组件调用单一的屏幕组件
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.