这是我的当前情况,我的主页由多个带有HTTP请求的组件组成。如果只有当所有组件完成其HTTP请求时才能显示页面,是否可能实现?
谢谢!
附注:我还没有代码可以展示,因为我只处于规划阶段,正在考虑如何开发Web应用程序。
谢谢!
附注:我还没有代码可以展示,因为我只处于规划阶段,正在考虑如何开发Web应用程序。
由于您的应用程序尚未编码完成,因此可以采用更好的组件结构。以下是我看到或实施过的方法。
1. 首先不需要全局加载器 -
如果每个组件在加载数据之前都可以处理渲染,就像使用下面展示的应用程序外壳架构一样。
Facebook帖子的加载外壳将如下所示:
[![enter image description here][1]][1]
[1]: https://istack.dev59.com/hBbTY.gif
代码
class Post extends React.Component {
render() {
return !this.props.isLoading ? (
<div className="post">...</div>
) : (
<div className="post-shell"></div>
);
}
}
2. 全局加载器
代码
class App extends React.Component {
render() {
return !this.props.isLoading ? (
<RootComponent {...props}>
) : (
<Loader />
);
}
}
Loader组件是一个绝对定位的加载图标/内容。
只有在数据加载完成后,RootComponent才会被挂载,以确保所有属性都具备所需的数据。
许多项目由于组件没有对应的外壳而无法使用前一种方法。但是,由于您没有时间上的限制,第一种方法提供了最佳的用户体验。
this.props.isLoading
条件?@Sagi_Avinash_Varma - Aboobakkar P S