我会选择@HendrikBrummermann 的回答:放置一个“正在加载...”标签。
从您的评论中,“...哪个组件包含标题...显示标题的未设置样式的 html”,我相信您已经有了答案:还没有加载的 CSS 可以设置标题的 HTML 样式。
Hendrik 的回答将标签保持在最低限度,因此这种效果并不明显。
如果您确实需要立即设置标题样式,我担心您需要使用内联样式(并且没有图像或字体 - 也不会加载)。保持最低限度就是:
<!doctype html>
<html>
<head>
...
<style>
...
</style>
</head>
<body>
<app-root>(styled header)</app-root>
</body>
</html>
然后在加载时,您可以删除占位符。
您也可以尝试(但它很混乱且难以维护)使用两个“加载器”的增量方法:一个非常非常小的一个,几乎不需要 CSS/图像,然后只要字体和其他非常少的基本资产是onLoad'ed 你可以用一个简单的动画替换它,然后从那里加载所有其余部分并激活完整的 Angular 应用程序。
还有一些“打包器”实用程序可以将您的大部分 HTML、CSS 和 JS 压缩到一个缩小的 SPA 包中;其中一些(我很抱歉,我看到其中一些被使用,但我自己从未使用过并且无法引用它们)也提供了如上所述的最小加载器。这可能会为您进行一些维护,并且可能值得一试。我知道这一点是因为对于一个项目,我的一位同事不得不用 HTML5 替换 Flash“请稍候”加载器(这不是 Angular 项目,但我认为这并不重要)。