【问题标题】:Alternative to Single-spa单一水疗中心的替代品
【发布时间】:2020-03-12 22:40:48
【问题描述】:

我们有用 angularjs 编写的大型企业应用程序。

现在我们必须迁移到 Angular,因此我们排除了混合方法的选项,Angular 建议使用“ngUpgrade”。

所以现在我们正在 Angular 中创建一个新应用程序,这意味着我们有 2 个应用程序“angularjs(old)”和 angular(new)。

所以在这两个应用程序之间切换可以不用使用 angular-spa 刷新。

我试图找出是否有另一个框架,在两个应用程序之间导航时无需刷新(无需通过导航到新的 html 来刷新整个页面)。

【问题讨论】:

  • 如果你想这样做,你必须将你的两个应用程序附加到同一个index.html文件中,否则你的页面将由于URL更改而重新加载。
  • 框架(angular和angularjs)之间会不会有框架冲突。我们有什么框架可以帮助做到这一点吗??
  • 我不这么认为,两个框架都有自己的上下文和语法,你应该很好。唯一可能发生的冲突是它们都操作 DOM 的相同部分(显然,您应该避免)

标签: angularjs angular micro-frontend


【解决方案1】:

可能的解决方案: 使用新的 Angular 应用程序作为包装器,然后只需使用 iframe 来显示您想要的应用程序取决于上下文 - 旧的或新的。您可能面临的问题是更改 iframe,但我想您可以使用 postMessage 在应用程序之间进行通信。

更复杂一点: 使用 Angular Elements 创建您的混合应用程序。 我真的建议您观看上次 Angular 连接中的 Erin talks,了解 Google 如何从 js 迁移到 Angular。

【讨论】:

  • 感谢您的快速回复。如果我没记错的话,Edge 和 IE 不支持 Angular Elements
【解决方案2】:

我最近尝试了这里描述的微前端架构: https://www.martinfowler.com/articles/micro-frontends.html

每个应用程序都在不同的代码存储库、运行时构建并且很容易实现。看看:)

【讨论】:

    猜你喜欢
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多