2026 年 Angular 组件架构:所有权归属
Signals 并未淘汰 Smart vs Presentational 模式,而是让职责边界更清晰。2026 年,大型 Angular 代码库的瓶颈不是组件过多,而是所有权不明确。
- Presentational 组件:只通过 input()/output() 通信,可持有局部 UI signal(如开关状态),但绝不注入服务、调用路由或触发副作用
- Smart 组件(Feature Shell):注入服务、持有特征级别 signal/computed、转化 Observable 为 signal,委托所有渲染给 presentational 子组件
- 状态决策树:UI 局部状态 → 组件内 signal;同一特征共享 → Smart 组件 signal;跨特征共享 → Injectable signal store(如 NgRx Signals Store)
- 常见反模式:presentational 组件注入 AuthService / Router、在 computed() 里写业务逻辑、混合 BehaviorSubject 与 signal、共享组件累计特征专属服务
Angular Signals 文档:[未提供]
#开发者 #工具
📢 频道:@DevToolboxHub
Post #295
2
