AngularJS : 单页和多页应用的区别和实际使用?

AngularJS : single page and multipage app difference and use in practice?

我一直在研究单页应用程序和多页应用程序之间的区别,我想我很清楚它们之间的区别。单页应用程序首先加载单个 html 页面,然后它再也不会完全刷新页面或覆盖原始页面,除非应用程序以其他方式刷新(浏览器刷新等)。例如,angularJS 种子项目:angular-seed 有一个 index.html 文件。该文件是单个页面,服务器将发送到前端,之后,所有其他(可能的)页面将通过使用 AJAX 在幕后异步发送。因此,如果您仅使用 angularjs 种子创建应用程序,它始终只是一个 SPA 应用程序,对吗?

在实践中,您将如何使用 angularjs 创建多页应用程序?那么您不需要多个 angularJS 应用程序吗?您是否必须为每个 angularJS 应用程序设置单独的路由?为什么要为 angularJS 制作多页应用程序?因为人们总是可以将第一个 index.html 用作 shell,而没有真正的内容,然后为不同的页面使用单独的容器页面。可以说 angularJS 多页应用程序将是一个应用程序,它只包含许多 SPA angularJS 应用程序吗?在 SPA 中,您可以使用浏览器的后退按钮返回上一个视图吗?

是的,您已经理解了 SPA 和 MPA。

Angular.js 允许您创建 SPA,但不会强制您。在 MPA 中,我不会谈论多个 Angular 应用程序,因为您只是将 Angular.js 模块分布在多个 HTML 页面上。然后,页面流或路由逻辑将位于 Angular.js 控制器、普通超链接或服务器后端。

可能有理由不将整个应用程序放在 Angular.js 下。也许由于某些原因,Web 应用程序的身份验证部分可能会单独举行...

在 SPA 中,您绝对可以使用浏览器的后退按钮。你只需要以某种方式实现它。 Twitter 通过将其 Web 应用程序的状态编码到 URL 中解决了这个问题 - 如果您使用的是 Twitter,您可能已经注意到地址栏中的符号 (#!)。