reactjs - 调用异步 Hook 会触发多个请求吗?
问题描述
想象以下组件:
function useAsyncHook() {
async function doAsyncStuff() {
...
}
doAsyncStuff();
}
function Foo() {
const result = useAsyncHook();
return (
<>
...
</>
);
}
function App() {
const result = useAsyncHook();
return (
<>
<Foo/>
...
</>
);
}
请注意,App
包括Foo
在其嵌套组件中。对不起,如果这是一个愚蠢的问题,但是有多少网络请求?只有一个,隐式缓存,还是两个,每个组件一个?
解决方案
您将有两个网络请求,自定义挂钩不共享状态。
从文档
使用相同 Hook 的两个组件是否共享状态?不会。自定义 Hook 是一种重用有状态逻辑的机制(例如设置订阅和记住当前值),但是每次使用自定义 Hook 时,其中的所有状态和效果都是完全隔离的。
推荐阅读
- mysql - 如何更改 MySQL 根密码?
- fusioncharts - FusionCharts Column2D图表:如何设置y轴范围
- python - 如何使用 Python 和 Selenium 遍历网站正文
- python - 使用 for 循环时递归函数不起作用(Dijkstra 算法)
- r-markdown - 将列表转换为要点
- react-native - 在模态中使用'react-native-dropdown-picker'中的DropDownPicker,之后有很多视图
- jenkins - 如何使用 ansible 创建 jenkins ssh 密钥凭据?
- java - 使用 ipv6 URL 访问应用程序时出现数字格式指针异常
- html - 用于上传文件的五个不同图标的加载动画
- touchscreen - 韦斯顿韦兰的校准矩阵在哪里?