javascript - 仅从 Angular 2 组件中的 rxjs 导入所需的功能

标签 javascript angular typescript rxjs

我正在开发一个使用 Angular cli 引导的 Angular 2 项目。我需要第一次加载速度非常快。这就是为什么要尝试减小所有 bundle 的大小。

令我头疼的是 rxjs 库,因为它显着增加了包的大小。我正在寻找导入技巧以使树摇动起作用,进一步减小块大小。我使用了 vscode 的导入建议,它们在编码时工作,但在构建 cli 时显示未解析这些路径的错误。

这行不通

import { of } from 'rxjs/observable/of';

我不得不诉诸

import { Observable } from 'rxjs/Rx';

是否有其他方法来导入特定运算符。

最佳答案

根据您使用的 RxJs 版本,有两种方法可以实现此目的。

对于旧版本 (< 6),您需要添加所有运算符,使用类似以下内容:

import 'rxjs/add/observable/of'

并从

导入 Observable
import { Observable } from 'rxjs/Observable';

从 rxjs/Rx 导入实际上会获取整个库,所以这就是为什么它不适合你。此外,由于旧的导入方式将修补 Observable 原型(prototype),因此您只需要导入操作符一次。通常,人们会将它们分组到每个应用程序的一个文件中,并仅在需要的地方导入 Observable。

在新的 RxJ 中,从版本 6.0 开始,导入工作的方式进行了重构,特别是为了更轻松地进行树摇动,因此人们可以简单地导入所有内容,例如:

import { Observable } from 'rxjs';
import { map, filter, switchMap } from 'rxjs/operators';

关于javascript - 仅从 Angular 2 组件中的 rxjs 导入所需的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49707932/

相关文章:

reactjs - 属性 'setLink' 在类型 'ApolloClient<NormalizedCacheObject>' 中缺失,但在类型 'ApolloClient<any> 中需要

javascript - 使用 jquery 的目标页面或 URL 的页面加载时间

Angular 5/Typescript/RxJS - 从 Observable 获取数据

javascript - 解析另一个对象 Angular 中的字符串值

javascript - Reference.push 失败 : first argument contains undefined in property

Angular 5 无效日期 IE 11

javascript - react 钩子(Hook) : why does useEffect need an exhaustive array of dependencies?

javascript - Angular 4组件没有被水平填充

javascript - 您使用什么轻量级、设计良好的 JS 选项卡?

javascript - 在取消选中复选框时在 jquery .prop() 中使用 bool 变量。我该如何管理它?