首页 > 解决方案 > React Hooks 异步最佳实践

问题描述

现在有了 use useEffects,就有了componentDidMount一个带有 Hooks 的 React Component 的替代品。

场景“对服务器的初始唯一调用”:

为了实现这一点,DependencyList(的第二个参数useEffectuseEffect每次都应该是一个空数组,否则应用程序将向服务器发送每个状态更改的获取调用。

这意味着,这是获取数据的最佳实践

useEffect(() => {
  console.log("useEffect, fetchData here");
}, []);

[]使用DependencyList 参数来禁用请求每个状态更改的服务器是最佳实践吗?

链接到 github https://github.com/facebook/react/issues/14326

标签: javascriptreactjsreact-hooks

解决方案


是的。这是最好的方法。

从反应文档

传入一个空的输入数组 [] 告诉 React 你的效果不依赖于组件中的任何值,因此效果只会在挂载时运行并在卸载时清理;它不会在更新时运行。

useEffect是一个非常强大的,也是我最喜欢的钩子。您可以通过将一个或多个变量传递到第二个参数数组来监控状态变化的一个或多个变量,或者您可以使用您正在使用的方法来监听挂载和卸载。


推荐阅读