什么是ngrx中的store.select

bla*_*awk 24 javascript redux ngrx angular

我是Redux的新手,从ngrx开始.我无法理解这行代码的含义store.select:

 clock: Observable<Date>;
 this.clock = store.select('clock');
Run Code Online (Sandbox Code Playgroud)

Mav*_*v55 23

用非常简单的术语来说,select会从包含在Observable中的应用程序状态返回一段数据.

它意味着,select运算符获取您需要的数据块,然后将其转换为Observable对象.所以,你得到的是一个包含所需数据的Observable.要使用您需要订阅的数据.

让我们看一个非常基本的例子.

  1. 让我们定义我们商店的模型

    导出界面AppStore {时钟:日期}

  2. 从'@ngrx/store'将商店导入您的组件

  3. 通过注入构造函数来创建商店

    constructor(private _store: Store<AppStore>){}

  4. 选择返回Observable.

    因此,在组件中声明时钟变量如下: -

    public clock: Observable<Date>;

    现在您可以执行以下操作: -

    this.clock = this._store.select('clock');


wir*_*mer 20

哇,这是一个很大的话题.所以基本上"select"实际上是一个RXJS运算符,在这种情况下用于检索应用程序状态对象的一部分的值.所以说你的主应用程序状态有一组用户和一系列安全功能."选择"允许您获取对其值仅为该用户数组的可观察对象的引用.在你进入ngrx之前,你真的需要研究Observables和RXJS.我发现这篇文章链接了主要的Github项目页面,对ngrx很有帮助.

https://gist.github.com/btroncone/a6e4347326749f938510

RXJS和redux可能是一个很大的话题,但我建议以小口大小的方式处理你的知识.在我真正感到舒服之前,我花了大约2个月的时间来处理它.即使你没有留在ngrx,理解RXJS如何工作是非常有用的,值得花时间投资来学习它.

这是一篇精彩的文章,也为RXJS提供了一个很好的介绍. https://gist.github.com/staltz/868e7e9bc2a7b8c1f754

  • 我有一个正在研究的项目,我们正在转换为Angular 2,并决定给ngrx一个去.我是ngrx和rxjs的新手.我会说我花了更多的时间来学习rxjs的概念以及observable如何比ngrx工作.使用ngrx需要时间的大部分时间是设置减速器和流逻辑的最佳约定.如何设置动作创建者.我从ngrx商店项目自述文件链接的示例应用程序中设置的项目中获得了很多灵感.https://github.com/ngrx/example-app (7认同)