angular的一些基础知识

  |  
阅读次数 
  

angular一些使用说明

NgZone的简单使用

angular中,如果模板中有一些变量在组件中经常变动,那么频繁的变动会造成性能损耗,angular提供了NgZone服务,对于一些频繁的操作可以不去触发变更检测

  1. 在组件中引入NgZone再将其注入
    1
    2
    3
    import {NgZone} from @angular/core

    constructor(private zone:NgZone) {}
  1. 调用runOutsideAngular方法,angular不会对里面的变化进行跟踪

    1
    2
    3
    4
    5
    this.zone.runOutsideAngular(() => {
    for(let i = 0; i< 100;i++>) {
    setInterval(() => this.counter ++,10)
    }
    })
  2. 重新跟踪变化

    1
    2
    3
    this.zone.run(() => {
    setTimeout(() => this.foo = this.foo,1000)
    })

PLATFORM_ID

A token that indicates an opaque platform id. (表示平台id的token)

isPlatformBrowser

Returns whether a platform id represents a browser platform.(。。。。)

1
isPlatformBrowser(platformId: Object): boolean

ElementRef

在应用层直接操作DOM,会造成应用层与渲染层之间的强耦合,导致应用无法运行在不同的环境

super

  1. constructor内的super()执行父类的构造函数。必须至少执行一次
  2. 一般方法内的super.method()执行父类的(未必同名)方法,不是必须