Reactjs 调用API时componentWillMount与componentDidMount
我刚刚将Facebook登录(Javascript SDK)添加到我的React应用程序中。问题是,当我在componentDidMount中添加Facebook API时,网页的加载速度变得非常慢。因此,我尝试了一种不同的方法,即componentWillMount,尽管存在弃用警告。但将API调用更改为ComponentMount似乎会显著提高加载速度 在网站性能方面,你认为componentWillMount和componentDidMount之间有区别吗?使用componentWillMount方法可以吗?还是您强烈推荐componentDidMountReactjs 调用API时componentWillMount与componentDidMount,reactjs,Reactjs,我刚刚将Facebook登录(Javascript SDK)添加到我的React应用程序中。问题是,当我在componentDidMount中添加Facebook API时,网页的加载速度变得非常慢。因此,我尝试了一种不同的方法,即componentWillMount,尽管存在弃用警告。但将API调用更改为ComponentMount似乎会显著提高加载速度 在网站性能方面,你认为componentWillMount和componentDidMount之间有区别吗?使用componentWillM
class FacebookAuth extends Component {
UNSAFE_componentWillMount() {
window.fbAsyncInit = () => {
window.FB.init({
appId: "ID",
cookie: true,
xfbml: true,
version: "v4.0"
});
}}
您不应该使用componentWillMount,它将被React v17完全删除
在您的用例中应该没有明显的性能差异。这肯定是另一个问题。您的API调用都应该在componentDidMount中。随着React的新更新,
componentWillMount
在加载组件时可能会多次调用,因此会出现不可预测的行为。这就是为什么不建议使用组件willmount
。如果您仍然认为将代码放入componentWillMount
会降低页面加载速度,请尝试将其移动到componentdiddupdate
,如下所示
componentDidUpdate(prevProps){
if(prevProps !== this.props){
//your code here
}
}
检查这个-。这可能是启动时完整组件的重复加载,同时facbook api也并行加载,所以在完全加载初始组件后执行componentDidMount时,它的速度会稍慢,所以看起来会稍快一些。