为什么要在Angular订阅中使用select with pipe?

我正在阅读angular的文档及其对RxJS库的使用。 我找到了这个信息

Pipes

  

您可以使用管道将运算符链接在一起。管道让您结合   多个功能合并为一个功能。 pipe()函数需要   要合并的函数作为其参数,并返回一个新的   该函数在执行时按顺序运行组成的函数。

管道的目的是链接多个功能,但令我感到好奇的是,我已经多次看到pipe的内部仅使用一个功能,例如:

this.itemSubscription = this.store
            .pipe(select(state => state.items.root))
            .subscribe(state => {
                this.items = state.items;
            });

当我尝试不使用select的情况下使用pipe时,我的tslint会说:

  不推荐使用

select:从6.1.0开始。使用管道选择操作符   代替。 (弃用)tslint(1)

为什么会这样?我想念什么吗?在互联网上找不到任何相关的解释。

haishizhende 回答:为什么要在Angular订阅中使用select with pipe?

使用可操作的运算符被认为是最佳实践。因为您只能将所需的特定运算符导入项目。其余的可以通过摇晃树来除去,因此捆束的大小正在减小。

一开始只使用一个操作符似乎有点不可思议,但是您会习惯的。

,

管道在v5.5中引入RxJS 采取看起来像这样的代码:

of(1,2,3).map(x => x + 1).filter(x => x > 2);

并把它变成这个

of(1,3).pipe(
  map(x => x + 1),filter(x => x > 2)
);

相同的输出,相同的概念,但语法不同。

它清除了'observable.prototype'并使RxJS库更具树状可摇动性,您只需导入所用内容即可。它还使编写和使用第三方运算符变得更加容易。

,

您正在混合事物。

  不推荐使用

select:从6.1.0开始。使用管道选择操作符   代替。 (弃用)tslint(1)

指在pipe之外使用select。

this.store.select( ... )

select内使用pipe是解决方法。

import { Store,select } from '@ngrx/store';

this.store.pipe(select( ... ))

很好。

本文链接:https://www.f2er.com/3097228.html

大家都在问