Я новичок в использовании React и React Router.React router загружает данные каждый раз
Домашняя страница (домашний компонент) загружает данные через запрос ajax на сервер, который отображает данные.
Затем люди могут перемещаться внутри приложения, используя реактивный маршрутизатор. Но когда кто-то возвращается на домашнюю страницу (домашний компонент), вызов ajax снова делается на сервер, который не нужен.
Таким образом, в основном, когда вы выполняете навигацию по компонентам с помощью реактивного маршрутизатора каждый раз, когда компонент загружается, каждый раз выполняется вызов ajax.
Есть ли что-то, что мы можем сделать, чтобы, возможно, кэшировать данные, например, в Angular, где нам не нужно снова и снова запускать вызовы ajax при загрузке компонента.
Благодаря
class NewComponent extends React.Component {
constructor(){
super();
this.state = {
data : []
}
}
componentWillMount() {
let length = Object.keys(this.state.data).length;
if(length === 0){
let req = new Request('https://example.com/json', {
mode: 'cors',
method: 'get'
});
this.serverRequest = fetch(req).then(function (result) {
return result.json()
}).then(function(j){
this.setState({
data: j.up
})
}.bind(this));
}
}
render(){
return(
some html
)
}
Не могли бы вы опубликовать код для иллюстрации проблемы? – dYale
@dYale добавил :) – rksh
Предполагаю, что вы рассмотрели этот вопрос: http://stackoverflow.com/questions/34347481/prevent-react-component-from-rendering-twice-when-using-redux-with-componentwill – dYale