angular 2 - 006 change detection 脏治检查 - DC

本文介绍了Angular中变更检测机制的工作原理及优化方法。主要包括三种触发脏检查的方式:事件(如点击、提交)、远程服务器数据获取(XHR)及定时器。文章还讨论了如何通过OnPush策略提高性能,并使用Virtual DOM来实现仅更新变化的部分视图。

ANGULAR CHANGE DETECTION EXPLAINED

引发脏治检查有三种方式:
  1. Events - click, submit, …
  2. XHR - Fetching data from a remote server
  3. Timers - setTimeout(), setInterval()
跳过子组件检查

跳过没必要的子组件检查可以提升性能
input是一个observables的时候, 如何实现跳过DC?

@Component({
  template: '{{counter}}',
  changeDetection: ChangeDetectionStrategy.OnPush
})
class CartBadgeCmp {

  @Input() addItemStream:Observable<any>;
  counter = 0;

  ngOnInit() {
    this.addItemStream.subscribe(() => {
      this.counter++; // application state changed
    })
  }
}
constructor(private cd: ChangeDetectorRef) {}

ngOnInit() {
    this.addItemStream.subscribe(() => {
      this.counter++; // application state changed
      this.cd.markForCheck(); // marks path
    })
  }
}
Virtual DOM

ng2引入VM, 实现只更新变化的视图部分

转载于:https://www.cnblogs.com/wancy86/p/ng2-dc.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值