You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular项目中仅在两个模块共享的组件是否需设为常规共享组件?

结论:绝对不应该放到常规Shared模块里!

常规的Shared模块是为所有模块提供通用共享内容的,把这个仅Module1和Module2能用的组件放进去,就打破了“仅特定模块可用”的限制——其他模块只要导入Shared就能访问它,完全不符合你的需求。

给你两个靠谱的解决方案:

  • 创建专属的小共享模块:比如新建一个SharedModuleForModule1And2,把这个组件和它依赖的相关内容都放在这里。然后只让Module1和Module2导入这个小模块,其他模块完全不碰它。这种方式最清晰,也方便后续如果还有其他仅这两个模块共享的组件/工具,可以统一管理。
  • 挂靠到其中一个模块的子模块:如果这个组件和Module1的业务逻辑绑定更深,可以把它放到Module1的一个子模块(比如Module1/SharedWithModule2)里,然后让Module2只导入这个子模块,而不是整个Module1。不过这种方式的隔离性不如专属共享模块,后续扩展起来也没那么灵活。

另外要注意:这个专属组件的依赖(比如专属样式、辅助函数)也尽量跟着它一起隔离,别随便依赖全局Shared里的通用内容,避免不小心把其他模块的依赖带进来。

内容的提问来源于stack exchange,提问作者Joan Miquel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:37:55