Reactjs 我们应该何时从远程服务器获取数据?
如果我们必须从远程服务器获取注释,我们将在何时执行该操作Reactjs 我们应该何时从远程服务器获取数据?,reactjs,Reactjs,如果我们必须从远程服务器获取注释,我们将在何时执行该操作 import React, { Component } from 'react'; export class CommentBox extends Component { // ... _fetchComments() { // it updates the component's state } // Voluntarily obfuscated componentXXX() { setInte
import React, { Component } from 'react';
export class CommentBox extends Component {
// ...
_fetchComments() {
// it updates the component's state
}
// Voluntarily obfuscated
componentXXX() {
setInterval(() => this._fetchComments(), 5000);
}
render() {
// ...
}
}
如果您发现上述实施有任何问题,请提出建议,我将实施。谢谢。通常情况下,我们应该执行副作用即异步任务,或者仅当我们希望影响初始DOM树,或者可以说我们希望通过从远程服务器获取数据,在数据可用时尽快强制更新DOM时,才可以说componentDidMount生命周期中的网络请求 componentDidMount在将组件装入树后立即调用。需要DOM节点的初始化应该在这里进行。如果需要从远程端点加载数据,这是实例化网络请求的好地方 如果数据在初始装载时有效,则编码,因为它将使用setState重新呈现-
import React, { Component } from "react";
export class CommentBox extends Component {
// ...
_fetchComments() {
// some AJAX request
let data = null;
// using promise to resolve the data
ApiCall().then(responseJson => data = responseJson).catch(err => console.log(err))
this.setState({data});
}
componentDidMount() {
setInterval(() => this._fetchComments(), 5000);
}
render() {
// ...
}
}
否则,在您想要触发的事件上,完全可以使用任何自定义/用户定义的方法执行网络请求,比如单击任何按钮或更改输入,如果您想要将数据设置为状态,使用setState以确保重新渲染会更改DOM树任何生命周期方法?这是使用setInterval在生产环境中获取数据的最佳方法吗?否,应删除生产环境的setInterval。componentDidMount将自动更新状态,无论您是否要强制设置时间间隔