组件willmount中的ReactJS-AJAX调用
建议在组件willmount中的ReactJS-AJAX调用,ajax,reactjs,Ajax,Reactjs,建议在componentDidMount函数中获取初始数据。对于我来说,这不是直观的,因为我们可以在组件willmount(中的第一个函数)中更快地完成。一般来说,我认为我们应该尽快启动AJAX调用,这样用户就不必等待它们了。那个么,为什么我们必须等到组件被渲染之后呢 我的问题是: 在组件willmount中使用AJAX是否有任何问题 在组件安装中使用AJAX有什么好处吗 这取决于您的任务。例如,我在componentWillReceiveProps中使用了一个ajax请求。你到底担心什么?你
componentDidMount
函数中获取初始数据。对于我来说,这不是直观的,因为我们可以在组件willmount
(中的第一个函数)中更快地完成。一般来说,我认为我们应该尽快启动AJAX调用,这样用户就不必等待它们了。那个么,为什么我们必须等到组件被渲染之后呢
我的问题是:
- 在组件willmount中使用AJAX是否有任何问题
- 在组件安装中使用AJAX有什么好处吗
组件上执行AJAX将挂载
componentWillMount(){
this.serverRequest = $.get(...);
}
现在您有一个挂起的AJAX请求。卸载组件时取消此请求是一种很好的做法
componentWillUnmount: function() {
this.serverRequest.abort();
}
但不管出于什么原因,组件都没有安装。您仍然有挂起的ajax请求,不能在任何地方取消(因为组件未装入,componentWillUnmount
),因此会造成内存泄漏
如果您将ajax请求放在componentDidMount
上,您可以保证componentWillUnmount
将启动,因为该组件已装载,允许您安全地清理请求