【问题标题】:Develop Angular application and use it with or without existing Spring MVC application [closed]开发 Angular 应用程序并在有或没有现有 Spring MVC 应用程序的情况下使用它[关闭]
【发布时间】:2018-10-03 08:30:46
【问题描述】:

我是 Angular 的新手,我知道 Angular 的基础知识。我们有一个非常大的项目,前端是用纯 javascript、HTML、CSS 编写的,后端是 spring MVC RESTful API。

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

我们决定最初只迁移一个页面。我们需要遵循什么方法来做到这一点。

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

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

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

我们的最终目标是慢慢地而不是一次性地以角度移动所有东西。

【问题讨论】:

    标签: javascript angularjs angular typescript spring-mvc


    【解决方案1】:

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

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

    希望这对您有所帮助。

    【讨论】:

      【解决方案2】:

      是一个有趣的问题,在我看来,您已经将重点放在了这两种可能的方法上。

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

      • 您想使用 Angular 路由吗?

      如果不是,那么只需使用 Angular Standelone 应用程序替换应用程序。棘手的地方在于 Angular 背后的概念,它强烈建议您将应用程序概念化为 Single page application,其中每个单页应用程序都是您的全局应用程序的一部分。

      让我们把博客想象成我们目前的案例:

      • 你有包含许多组件的模块,专门的服务来管理文章。这将代表您的 SPA 专用于文章显示,有或没有 Angular Routing。

      • 您拥有包含许多组件的模块,以及用于管理评论的专用服务。这将代表您的 SPA 专用于评论显示,无论有无 Angular Routing。

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

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

      通过这种方法,您可以拥有通用模块,其他模块需要它来共享您的代码的某些部分。

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

      在 N 时间,是转到遗留代码的外部链接。 另一个时候,是内部链接,必须由 Angular Routing 处理。


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


      其他关键点:

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

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

      • 角形
      • 角度路由
      • 角度动画

      您总是可以通过其他方式进行交易。

      【讨论】:

        猜你喜欢
        • 2013-05-28
        • 2021-06-12
        • 2018-07-12
        • 1970-01-01
        • 1970-01-01
        • 2017-12-25
        • 2018-05-15
        • 1970-01-01
        • 2013-09-15
        相关资源
        最近更新 更多