0Pricing
Angular Academy · 课时

构建可复用行为

将行为封装为可组合的指令

构建可复用行为 是 CoddyKit 上的免费 Angular Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Angular Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Angular Academy 课程共包含 4 节课。

作为构建模块的行为

当您设计小型且职责集中的指令,让每个指令封装一种行为,再根据需要将它们组合到组件上时,组合 API 的优势就能充分体现出来。

单一用途的指令

让每个行为都保持小巧且独立。

@Directive({
  selector: '[appElevate]'
})
export class ElevateDirective {
  @HostBinding('style.boxShadow')
  shadow = '0 2px 8px rgba(0,0,0,.15)';
}

悬停行为

另一个行为会监听悬停事件并切换一个类。

@Directive({ selector: '[appHoverClass]' })
export class HoverClassDirective {
  @HostBinding('class.is-hover') hovering = false;
  @HostListener('mouseenter') on() { this.hovering = true; }
  @HostListener('mouseleave') off() { this.hovering = false; }
}

组合行为

卡片组件可以组合这两种行为,无需在模板中进行连接配置。

@Component({
  selector: 'app-card',
  hostDirectives: [ElevateDirective, HoverClassDirective],
  template: '<ng-content></ng-content>'
})
export class CardComponent {}

跨组件复用

相同的行为可以组合到按钮、磁贴或面板上。定义一次,处处复用,无需重复编写。

可配置的行为

添加输入,使行为可以调节,然后在组合时将这些输入公开出来。

@Directive({ selector: '[appElevate]' })
export class ElevateDirective {
  level = input(1);
}

公开配置选项

公开可配置的输入,以便每个宿主都能设置它。

hostDirectives: [{
  directive: ElevateDirective,
  inputs: ['level']
}]

协调行为

行为可以通过元素注入器相互注入,以便彼此协调,例如让波纹效果响应按下状态。

可测试性

小型行为易于单独进行单元测试,组合后也更容易验证,从而提高整体可靠性。

命名约定

根据行为的作用为其命名(appElevate、appHoverClass、appAutofocus)。清晰的名称能让组合关系一目了然。

行为库

随着时间推移,您可以构建一个可组合行为库,任何组件都能选择使用其中的行为,从而大幅减少重复的宿主逻辑。

快速检查

测试您对可复用行为的理解。

回顾

您学会了设计小型、独立的指令,让每个指令封装一种行为;使用 hostDirectives 组合这些指令;公开可调节的输入;并构建可复用且可测试的行为库。

常见问题解答

「构建可复用行为」课时是免费的吗?

是的 — 「构建可复用行为」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Angular Academy 课程的其余内容,请升级到 CoddyKit PRO。 Angular Academy 课程共包含 4 节课。

「构建可复用行为」这节课中我会学到什么?

将行为封装为可组合的指令 你通过在浏览器中直接运行的动手代码来练习 Angular Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Angular Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Angular Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「构建可复用行为」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Angular Academy 课中编写并运行代码吗?

能。每节 Angular Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. hostDirectives 属性
  2. 公开输入与输出
  3. 构建可复用行为
  4. 组合与继承
← 返回 Angular Academy