Angular2 / Angular4中的无状态或一次绑定组件?

时间:2017-11-11 18:18:51

标签: angular angular2-template angular-components

让我们说我需要根据一些数值输出一个图标。例如:1 - 红色图标,2 - 蓝色图标,3 - 绿色图标等。我想只有演示文稿,不需要存储状态以供任何使用,图标的状态(或数值)将不要改变。

我想知道实现这种演示输出的最佳方法是什么?

目前我使用的是管道:

<div [innerHtml]="1 | numberToIcon"></div>

这种语法很难记住。所以我想用一个组件替换它:

<my-icon value="1" />

但我担心使用该组件会使Angular轨道组件成为状态。而且我不想为此浪费记忆。

有没有&#34;光&#34;组件方式?也许组件没有状态?

1 个答案:

答案 0 :(得分:0)

您可以使用

@Component({
  ...,
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class MyIconComponent {
  constructor(this.cdRef:ChangeDetectorRef) {
  }

  ngOnInit() {
    cdRef.detach();
  }
} 

OnPush仅在输入更改或调用偶数处理程序或显式调用时才会发生更改检测。 如果你拆开变化探测器,那么Angular就不应再对该组件进行任何变化检测。