AngularJS是否仅适用于单页应用程序(SPA)?

2022-08-30 01:17:35

我们正在寻找构建我们正在创建的应用程序的前端的选项,并尝试评估一种工具,该工具将为我们工作,并为我们提供前进的最佳平台。

这是一个节点.js项目。我们最初的计划是使用Express并沿着这条路走下去,但我们决定,在我们开始这个阶段之前,最好先回顾一下那里有什么。我们的应用程序有几个领域,我们认为这些领域不适合单页模型,因为它们从应用程序的角度来看是相关的,但从视图的角度来看却不是相关的。

我们已经看到了一些可以用来构建客户端的框架,如Backbone.js Mete,Meteor等,还有AngularJS。

这可能是一个相当明显的问题,但我们似乎无法破译AngularJS是纯粹用于单页应用程序,还是可以用于多页应用程序,例如Express。


2013年7月17日更新为了让人们了解情况,我将在整个过程中更新这个问题。我们现在将一起构建所有内容,我们将看到它的表现如何。我们已经联系了一些比我们更有资格使用AngularJS的人,并提出了关于拆分共享上下文的较大应用程序的问题,但在单个页面上工作可能太大。

共识是,我们可以提供多个静态页面,并创建仅与这些页面一起使用的AngularJS应用程序,有效地创建SPA集合并使用标准链接将这些应用程序链接在一起。现在我们的用例非常具体,因为我们的解决方案有几个应用程序,正如我所说,我们将首先尝试单个代码库,然后从那里进行优化。

2016年6月18日更新这个项目悬崖勒马,所以我们从来没有做过太多的事情。我们最近又拿起了它,但不再使用angular,而是使用React。我们仍在使用上一次更新中概述的架构,其中我们使用express和自包含应用程序,因此,例如,我们在express中有一个提供React聊天应用程序的路由,我们有另一个提供项目应用程序的路线等等。我们看待它的方式是,就其功能集而言,每个应用程序都是一个聚合根,它需要能够独立才能被视为应用程序本身。从技术上讲,所有信息都在那里,它只是基本的表达,以及你想要使用的客户端应用程序构建的任何东西。/chat/projects


答案 1

一点也不。您可以使用Angular构建各种应用程序。客户端路由只是其中的一小部分。

您有大量功能列表,这些功能将在客户端路由之外使您受益:

  • 双向绑定
  • 模板化
  • 货币格式
  • 多元化
  • 可重用控件
  • RESTful api handling
  • AJAX 处理
  • 模块化
  • 依赖注入

认为所有这些“只能在单页应用程序中使用”是疯狂的。当然不是。。这就像说“Jquery仅适用于带有动画的项目”。

如果它适合您的项目,请使用它。


答案 2

起初,我也在Angular的“如何”上挣扎。然后有一天,我突然意识到:“它仍然是javascript”。在Angular(我最喜欢的书之一)的来龙去脉上有一堆例子,还有 https://github.com/angular-app/angular-app)。要记住的最重要的事情是加载js文件,就像在任何其他项目中一样。您所要做的就是确保不同的页面引用正确的Angular对象(控制器,视图等),并且您已关闭并运行。我希望这是有道理的,但答案是如此简单,以至于我忽略了它。