【发布时间】:2016-05-24 04:38:47
【问题描述】:
我是使用 React 和 React Router 的新手。
主页(主页组件)通过 ajax 请求将数据加载到显示数据的服务器。
然后人们可以使用反应路由器在应用程序中导航。但是当有人返回主页(主页组件)时,再次对服务器进行 ajax 调用,这是不必要的。
所以基本上当你在每次加载组件时使用 react 路由器在组件中导航时,每次都会进行 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
)
}
【问题讨论】:
-
你能发布一些代码来说明这个问题吗?
-
我假设你已经仔细阅读过这个问题:stackoverflow.com/questions/34347481/…
-
我没有使用redux,所以基本上我必须创建一个父组件并将这个组件添加为子传递数据作为道具?
-
简短的回答是:您需要一个地方来存储数据。无论是在顶级/共享组件中,还是在 React 之外的一些存储,如 redux / mobx 等,甚至可能是本地存储。
标签: javascript angularjs ajax reactjs