是否可以在Web组件中包装Angular 4应用程序?

时间:2017-07-12 14:51:40

标签: angular web-component

我们必须使用只能使用web components扩展的CMS,但由于我们有复杂的模块,我们希望在Angular 4中编写模块(另外,由于其他原因,我们是被迫使用Angular而不是React)。

是否可以编写Angular 4个应用并将其打包在web component

1 个答案:

答案 0 :(得分:6)

你可以,但我不认为这是最好的主意。 您需要考虑一些事项。

  • angular4必须与包含Web组件的应用程序共享路由器。只有一个window.location对象。 (除非你把它包装在iframe中)这基本上意味着你不能在那个角度4的应用程序中进行导航。
  • Zone.js只能加载一次(所以当你包含多个角度4应用时,你必须确保它只加载一次)
  • Web组件只能使用一次,因为角度应用程序将在特定组件上呈现(换句话说,它只能有一个实例)
  • 然而,Angular 4正在与网络组件https://github.com/robwormald/angular-elements
  • 一起工作

我的两分钱:当你想在一个应用程序中运行多个物理角度应用程序时,使用iframe并通过文档事件进行通信。如果你没有正确管理它们,显然会有一些性能权衡。我已经创建了一个演示文稿,可以回答您的一些问题:https://www.slideshare.net/BrechtBilliet/agular-in-a-microservices-world