首页 > 解决方案 > 调用 API 时的 componentWillMount vs componentDidMount

问题描述

我刚刚将 Facebook 登录(Javascript SDK)添加到我的 React 应用程序中。问题是当我在 componentDidMount 中添加 Facebook API 时,网页加载变得非常缓慢。因此,即使有弃用警告,我也尝试了另一种方法 componentWillMount。但看起来将 API 调用更改为 componentWillMount 显着提高了加载速度。

在网站性能方面,您认为 componentWillMount 和 componentDidMount 有区别吗?可以使用 componentWillMount 方法吗?还是您强烈推荐componentDidMount?

class FacebookAuth extends Component {
  UNSAFE_componentWillMount() {
    window.fbAsyncInit = () => {
      window.FB.init({
        appId: "ID",
        cookie: true, 
        xfbml: true, 
        version: "v4.0" 
      });
}}

标签: reactjs

解决方案


你不应该使用 componentWillMount,它会被 React v17 完全删除。

在您的用例中应该没有明显的性能差异。这一定是另一个问题。您的 API 调用都应该在 componentDidMount 中。


推荐阅读