代码之家  ›  专栏  ›  技术社区  ›  mr__brainwash

仓库之间的差异。选择进入施工器并在其之前以角6?

  •  0
  • mr__brainwash  · 技术社区  · 8 年前

    1) export class SomeClass {
          myObservable$ = <Observable<MyObservableType>>this.store.select(fromReducers.getMyObservable);
          constructor(
            private store: Store<fromReducers.State>
          ) { }
        } 
    
    2) export class SomeClass {
          myObservable$ = Observable<MyObservableType>;
          constructor(
            private store: Store<fromReducers.State>
          ) {
            this.myObservable$ = this.store.select(fromReducers.getMyObservable);
          }
        }
    

    为什么在ngrx/商店 app-example 他们使用第二种变体?

    1 回复  |  直到 8 年前
        1
  •  0
  •   firegloves    8 年前

    不同之处在于,在第一种情况下,它在类实例化期间请求数据,有可能会减慢所有web应用程序的初始化过程,并有可能破坏用户体验。

    长操作不应进入构造函数或变量声明。

    最好的选择是将数据提取到 ngOnInit 方法。对于所有潜在的长时间操作来说都是一样的。

    angular lifecycle docs 对幕后发生的事情有一个最深刻的了解

    在声明点初始化变量是一个很好的实践,但是用实际值初始化变量并不是强制性的。通常,它们被初始化为空,然后在构造函数中或构造函数之后获取它们的值,因为通过这种方式,您应该确保可以依赖的所有其他变量都应该被实例化。