Angular Universal仍然是SPA吗?

VSO*_*VSO 3 angular-universal angular

我已经阅读了几篇文章,其中一些是Angular Universal官方页面此处的介绍等。

我不完全了解-Angular Universal服务器是否仍提供单个页面(大量的html),还是有一种方法可以配置Angular Universal以基于以下方式返回多个页面(一次应用程序的一部分)路线(请求/路线)?

最终目标是在不存在路由的情况下返回硬404(但是,就上下文而言,这超出了此问题的范围)。

对我来说令人困惑的部分是:

这是因为与服务器端渲染的HTML一起,我们还将向浏览器提供普通的客户端Angular应用程序。

然后,此Angular客户端应用程序将接管页面,从那里开始,所有内容都像正常的单页面应用程序一样工作,这意味着所有运行时渲染将像往常一样直接在客户端上进行。

那么,究竟是the server-side rendered HTML什么?它是预先渲染的WHOLE应用程序,还是某种程度上针对用户要求的“路线” /视图/内容?

Cod*_*er0 5

TL; DR

  • Angular Universal将您的初始index.html页面作为预渲染的html文件提供,因此用户没有(很长)等待时间。
  • 它还将整个SPA与初始预渲染一起发送index.html
  • 尽管用户可以立即开始与初始页面进行交互(例如index.html),但SPA在后台启动。
  • SPA完成引导程序后,它将立即处理用户请求。

关于SPA的论述

Angular和其他类似框架和/或库(例如React)背后的意图是提供称为单页应用程序(SPA)的服务。SPA是在您的浏览器中运行的成熟应用程序,可自动呈现不同的页面,而无需与后端服务器进行交互。通常,仅当它请求可能显示在SPA中的其他数据时,它才与后端服务器通信。

引导SPA可能很慢

虽然SPA确实很棒,并且消除了用户每次导航到Web应用程序的另一个页面时都需要从后端服务器请求文件的需求,但是SPA的初始启动时间可能非常慢(取决于客户端计算机),并且SPA引导时,可能会导致初始空白页或加载指示器。

角度通用

为了通过查看旋转的加载图标或空白页面来消除用户的等待时间,Angular Universal可以index.html通过在后端进行预渲染来提供应用程序的初始页面。此外,它将Angular Application(您的SPA)与预渲染的一起发送到客户端浏览器index.html

例如,这可能是您的应用程序的登录页面,该页面在后端预先呈现并提供给用户。最后,当您的SPA仍在用户浏览器的后台启动时,用户可以立即开始与该页面(在此示例中为登录页面)进行交互。在用户记住其凭据的时间,SPA已完成自举并为用户将来的所有请求提供服务。因此,用户不必盯着正在加载的动画或空白页,也不太可能放弃您的网页。