ngFor只能渲染一次,而永远不会再次检查更改吗?

时间:2019-12-01 02:58:57

标签: angular

im在菜单中工作,该菜单从树结构化对象中加载项目。目前,我正在使用嵌套的ngFor,但是菜单使用一些jquery和其他东西来使其精美(动画,渐变滚动条等),并且使用ngFor会对性能产生巨大影响。动画断断续续甚至不显示。如果手动将相同的菜单写入模板(相同的元素,相同的级别,相同的所有内容),则工作正常。 我不确定,但我认为是因为变更检测器正在减慢速度。

进入系统后,菜单不变。因此,我希望有一种方法可以在接收到对象后将其渲染一次,而不会检测到更多更改

1 个答案:

答案 0 :(得分:1)

如果菜单是单独的组件,则可以尝试将更改检测策略更改为OnPush,这将使更改检测仅在引用@Input发生更改时才运行,这可以解决您的问题。如果没有,它将永远不会运行。

@Component({
  selector: 'my-menu',
  templateUrl: 'my-menu.component.html',
  changeDetection: ChangeDetectionStrategy.OnPush,
})