[英]How to persist data in react app to minimize server call
在我的 ReactJS 页面之一中,有两个下拉菜单,在选择一个或另一个的值时,它会调用服务器 API 来获取数据。 为了获取数据,我正在使用useEffect
钩子,如下所示
export const useFetch = () => {
const [state, setState] = useState({ data: null, loading: true });
useEffect(() => {
setState(state => ({ data: state.data, loading: true }));
fetch(url)
.then(x => x.text())
.then(y => {
setState({ data: y, loading: false });
});
}, []);
return state;
};
现在,从下拉菜单中,可以进行一定数量的组合来获取 API 数据,因为选项和任何组合都不会太大,API 的值将保持不变,所以我需要为防止 API 调用,如果之前已获取相同的组合数据并仅利用以前的组合数据并最小化我的组件重新渲染(如果路由更改并返回,这也是一种情况)。
请建议在这种情况下如何处理。 我研究了浏览器的localstorage
但如果浏览器/选项卡关闭等,清理localstorage
值会有点问题
例子:
componentDidMount() {
window.addEventListener('beforeunload', this.handleBeforeunload)
}
componentWillUnmount() {
window.removeEventListener('beforeunload', this.handleBeforeunload)
}
handleBeforeunload() {
localStorage.removeItem('myItem')
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.