开发Angular应用程序并在有或没有现有Spring MVC应用程序的情况下使用它

时间:2018-04-23 10:18:26

标签: javascript angularjs angular typescript spring-mvc

我是棱角分明的新手,我知道角度的基础知识。我们有一个非常大的项目,用前端的简单javascript,HTML,CSS和后端的spring MVC restful API编写。

现在我们的计划是将这个非常大的应用程序迁移到angular。但我们不能一次性迁移它,因为它很大,并且在javascript代码中搞砸了。这里的javascript代码不是按照标准惯例编写的。

我们决定最初只迁移一页。我们需要采取什么方法来做到这一点。

我正在考虑以角度为该页面开发和部署单独的应用程序。从现有应用程序中删除现有页面。每当在浏览器中请求页面时,它将从角度单独的应用程序提供。其他页面将从现有应用程序提供。但是在这里我们管理现有应用程序的会话,我也可以在角度应用程序中管理相同的会话。我们在浏览器cookie中维护会话。

第二种方法是为该页面创建一个单独的应用程序,然后将其集成到现有应用程序中。

请建议我哪种方法更好,每种方法的优缺点是什么。如果有任何其他选择或解决方案,请建议我。

我们的最终目标是不是一次性而是缓慢地将所有东西都移动。

2 个答案:

答案 0 :(得分:1)

作为一个有角度的开发人员,我建议你使用React,如果你想逐步转换它。由于angular是一个框架,这意味着你必须使用其路由器,表单,服务,模块等从头开始构建所有内容。 但是,如果您遵循反应方法,则可以将当前应用程序转换为小型反应组件。这不会影响您当前的应用程序,您可以使您的应用程序功能丰富。 大多数反应应用都是以这种方式制造的。这就是反应库的美妙。

如果您需要Angular,它将用于构建SPA(单页面应用程序),并且无法进行迁移,因为您必须从头开始开发应用程序。

希望这可以帮到你。

答案 1 :(得分:1)

是一个有趣的问题,在我看来,你已经把重点放在两个可能的approch上。

关于概念性问题,主要询问点是:

  • 您想使用Angular Routing吗?

如果不是,那就去Angular Standelone应用程序替换应用程序。这将是棘手的,因为Angular背后的概念深深建议您将您的应用程序概念化为Single page application,其中每个单页应用程序是您的全局应用程序的一部分。

让我们想象博客作为我们当前的案例:

  • 您拥有包含许多组件的模块,用于管理文章的专用服务。这将代表您的SPA专用于文章显示,有或没有角度路由。

  • 您拥有包含许多组件的模块,用于管理评论的专用服务。这将代表您的SPA专用于评论显示,有或没有角度路由。

  • 您有一个SharedModule专用于所有其他模块共享的所有内容。

然后,一步一步地,创建代表最终应用程序和平的所有其他模块。

通过此approch,您可以拥有通用模块,在其他模块上需要共享您代码的某些部分。

如果是的话,你真的想要使用Angular Routing,那么你将需要管理路由配置并处理LifeCycle重构路线图。

在N时,外部链接是遗留代码。 另一方面,内部链接必须由Angular Routing处理。

关于Session Cookie,不用担心由角度HttpClient自动管理,HttpClient将为后端提供当前域的所有cookie。

其他关键点:

Angular和React都必须管理所有内部DOM,在引导应用程序之后,Framework需要管理整个DOM部分。当一些html来自服务器(例如编辑器)时,这可能很难(but not impossible)。

如果您不想使用,Angular不会强迫您使用框架的所有部分:

  • 有角度的形式
  • 角度路由
  • 角度动画

你总是可以用另一种方式处理。