【问题标题】:Managing Big Data in Angular2在 Angular2 中管理大数据
【发布时间】:2017-01-31 02:58:13
【问题描述】:

我正在学习具有 Sencha ExtJS 框架背景的 Angular2 课程。

我的问题很简单:使用 AngularJS,你如何存储大数据结构并与之交互?在整个过程中,当服务检索数据时,数据总是很小并且存储在数组中。

我为什么提到 ExtJS?因为它提供了名为 Store 的类,顾名思义,存储数据并查询数据,具有过滤、排序、映射等功能。

我们举个例子:

我有世界上的机场列表,我想选择提供它。当然,我将设置注入到提供整个列表的选择的服务。但后来:

-我想在用户继续输入时对其进行过滤

-包含数据的数组是一个对象数组,名称后面有其他属性,如国家或id

要遵循哪种方法?

【问题讨论】:

  • 嗨,是什么阻止您将数据(即机场列表)存储在应用程序顶部的智能组件中?这是迄今为止我看到的最常见的设计。
  • 如果问题与复杂对象列表的查询方法有关,您可以使用最著名的库之一(Lodash 提供 mapfilter i>, fold, ...) 或 RxJS 异步工作。
  • 这正是我想要的。作为 Angular 的新手,我只需要了解管理。没有内置任何内容,您必须委托给外部库。正如我所说,ExtJS 已经包含所有这些管理。智能组件是什么意思?应用程序组件?不过非常感谢!
  • 不客气! App.component 在几乎所有情况下都可以被认为是一个智能组件:它将托管业务逻辑并在需要时保留状态(如您的机场列表)。我在下面的回答中详细说明了。

标签: angularjs angular store


【解决方案1】:

根据我的 cmets,这是我的答案。

在 Angular 2 中,我们有 智能组件,它承载逻辑和数据,以及 哑组件,它们是纯视图,没有逻辑,最好是无状态的。

理想情况下,您可以从 API 检索数据并将其传递给您的智能组件,或者返回整个数据或使用 RxJS 公开一个流。

使用RxJS 的示例是:

  • 调用 API 并返回带有数据的 Observable 的服务
  • 使用服务数据的智能组件,以Subscription 的形式
  • 一个或多个哑组件显示由智能组件(充当容器)下推的数据

此时,您的数据操作可以驻留在服务或智能组件中(这取决于您需要转换什么以及如何转换)。 要操作数据,我建议您使用RxJS,它提供了链接流和filter, aggregate, map, ... 方法的可能性。它是异步的。

如果您可以选择不那么复杂但阻塞的东西(这取决于您的要求),我建议您使用Lodash,它为集合带来了链接、映射、过滤和聚合数据的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 2017-02-16
    • 2017-12-26
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多