Трубный селектор NGRX 5

В этой статье на medium.com (13 февраля) о NGRX 5. они представляют конвейерные селекторы. Это напоминает мне о том, как я читал о конвейерных селекторах в rxjs, где они не могли быть оправданы только «своей чистой функцией, бро», но также тем, как функции можно было объявлять и повторно использовать в разных случаях без использования map каждый раз, чтобы затем вызывать letable функция.

Так что я могу согласиться, что это хорошо в rxjs, но зачем нам это в ngrx - для селекторов. В связанной статье показан следующий пример:

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

interface AppState {
  count: number;
}

@Component({
  selector: 'my-app',
  template: `
    <button (click)="increment()">Increment</button>
    <div>Current Count: {{ count$ | async }}</div>
    <button (click)="decrement()">Decrement</button>

    <button (click)="reset()">Reset Counter</button>
  `
})
export class MyAppComponent {
  count$: Observable<number>;

  constructor(private store: Store<AppState>) {
    this.count$ = store.pipe(select('count'));
  }
}

Итак, теперь мы вызываем store.pipe(select(...)); вместо store.select(Selector); — где выигрыш? почему я должен изменить свой код, чтобы использовать это поведение, или хотя бы начать использовать конвейерные селекторы?


person SchreiberLex    schedule 12.04.2018    source источник
comment
Потому что лучше всего использовать один и тот же стиль селектора во всем приложении, и старый способ может стать устаревшим после того, как rxjs6 получит широкое распространение. Если у вас есть проблемы с частым изменением кода, angular сведет вас с ума.   -  person bc1105    schedule 12.04.2018
comment
потому что вы, вероятно, будете использовать его везде, где вы используете rxjs в целом, поэтому наличие его в вещах, связанных с хранилищем ngrx, имеет смысл для тех же преимуществ: меньшая занимаемая площадь и унификация кода.   -  person dee zg    schedule 21.04.2018


Ответы (1)


В NgRx 7 это устаревание отменено — см. журнал изменений.

person timdeschryver    schedule 06.11.2018