调用platformBrowserDynamic注册两个根模块会生成两个独立Angular应用吗?
结论
上述操作会创建两个互不相交的独立Angular应用,不会出现第二个覆盖第一个的情况。
原因说明
- 每次调用
platformBrowserDynamic()都会生成一个全新的平台实例,调用bootstrapModule启动根模块时,Angular会自动匹配DOM中未被其他Angular应用占用的根组件占位符(也就是<app-root>标签),按先后顺序依次挂载。 - 两个启动的应用各自持有独立的依赖注入容器、变更检测树、状态管理上下文,彼此的内部逻辑完全隔离,不会互相干扰。
- 唯一的公共共享项是浏览器全局对象(比如
window、history),如果你在根模块中配置了路由,两个应用都会响应浏览器地址栏的路由变化。
补充验证方式
你可以在根组件的ngOnInit钩子中打印随机值,打开控制台就能看到两个不同的输出,同时页面上两个<app-root>节点都会被正常渲染内容,不会出现其中一个为空的情况。
内容的提问来源于stack exchange,提问作者user15361861
相关产品推荐
相关产品推荐

