【发布时间】:2013-02-20 07:03:08
【问题描述】:
我们正在寻找构建我们正在创建的应用程序前端的选项,并正在尝试评估一种对我们有用并为我们提供前进的最佳平台的工具。
这是一个Node.js 项目。我们最初的计划是使用 Express 并沿着这条路线走下去,但我们决定在我们开始这个阶段之前,最好先回顾一下那里有什么。我们的应用程序有几个我们认为不适合单页模型的区域,因为它们从应用程序的角度来看是相关的,但从视图的角度来看却不是。
我们已经看到了一些可以用来构建客户端的框架,例如 Backbone.js、Meteor 等,还有 AngularJS。
这可能是一个相当明显的问题,但我们似乎无法解读 AngularJS 是纯粹用于单页应用程序还是可以用于像 Express 这样的多页应用程序。
2013 年 7 月 17 日更新 只是为了让人们了解这一点,我将在我们完成整个过程时更新这个问题。我们现在将一起构建所有东西,我们将看到它的表现如何。我们已经联系了一些比我们更有资格使用 AngularJS 的人,并提出了有关拆分共享上下文的大型应用程序的问题,但在单个页面上工作可能太大了。
共识是我们可以提供多个静态页面并创建仅与这些页面一起使用的 AngularJS 应用程序,有效地创建 SPA 集合并使用标准链接将这些应用程序链接在一起。现在我们的用例非常具体,因为我们的解决方案有多个应用程序,正如我所说,我们将首先尝试单一代码库并从那里进行优化。
2016 年 6 月 18 日更新该项目一落千丈,所以我们从来没有完成太多工作。我们最近再次选择了它,但不再使用 angular,而是使用 React。我们仍在使用上一次更新中概述的架构,我们使用 express 和 self contains 应用程序,例如,我们在 express 中有一个 /chat 路由来服务我们的 React 聊天应用程序,我们还有另一个路由 /projects提供项目应用程序等。我们有点看它的方式是,每个应用程序在其功能集方面都是一个聚合根,它需要能够独立才能被视为一个应用程序本身。从技术上讲,所有信息都在那里,它只是基本的表达方式以及您想要使用的客户端应用程序构建的任何风格。
【问题讨论】:
-
怎么样?我正在尝试弄清楚如何将 50 多页的 ASP.NET 应用程序移动到纯 HTML + Javascript + REST 应用程序,但我真的不明白这将如何作为 SPA 工作。
-
我们不得不转向其他事情。从我们已经和将再次开始的讨论来看,SPA 可以成为更大机器中的一个非常集中的齿轮。因此,如果您想保留在熟悉的堆栈(.Net)中,将我们的实例转换为您的实例(我们使用带有 express 的纯节点),您可以使用 MVC 作为您的脚手架并在视图中使用角度来添加动态内容(每个功能) .除非你可以将你的应用程序压缩,否则将 50 页逻辑实现到一个页面中可能会令人窒息。
-
这样做是为了让每个部分(即用户、新闻、产品等)本身成为一个 SPA,但它们共同构成了您的应用程序。
-
太好了,谢谢。是否需要进行任何特定的编码才能将不同的 SPA 绑定在一起?还是只是常规链接?
-
@Greg,就我们目前的有限知识而言,因为它们本质上是应用程序本身,标准链接可以工作,显然它可能不会是直截了当的,因为它和某种形式的持久性(cookie,如果应用程序支持某种形式的登录,则需要本地存储来保存共享信息,例如身份或个人资料。我们的应用程序将与我们的 API 紧密链接,并且在构建受信任的应用程序时,我们使用 oauth 来保护每个请求,我认为 Trello 会做类似的事情,但我可能是错的。
标签: javascript node.js angularjs