鍍金池/ 問(wèn)答/HTML5  C++  網(wǎng)絡(luò)安全  HTML/ 請(qǐng)問(wèn)前輩,angular如果要引入rxjs相關(guān)api的話,到底正確姿勢(shì)是怎樣的?

請(qǐng)問(wèn)前輩,angular如果要引入rxjs相關(guān)api的話,到底正確姿勢(shì)是怎樣的?

各位前輩好,是這樣的,我最近在看一個(gè)angular教學(xué)視頻,對(duì)視頻里的rxjs的api引入很混亂,不知道到底正確的引入是怎樣的,比如

圖片描述

請(qǐng)問(wèn)這兩種方式到底有什么不同,我測(cè)試了一下,發(fā)現(xiàn)上面兩種方式引入都可以正常編寫啊,

但是下面這種的話,為什么第一個(gè)引入會(huì)報(bào)錯(cuò)???第二個(gè)引入才可以,那請(qǐng)問(wèn)是不是如果我要使用其他api,比如switchMap,filter,from,take之類的,全部都要這樣
{xxx,xxx,xxx} from "rxjs/add/operator/xxx" 引入才行????????

圖片描述

打擾了,望各位前輩指教?。?/p>

回答
編輯回答
神曲

rxjs github上有一句話做了說(shuō)明,引入ObservableSubjectSubscription最好的方式就是

To import only what you need by patching (this is useful for size-sensitive bundling):
import { Observable } from 'rxjs/Observable';

也就是說(shuō),需要什么,就去對(duì)應(yīng)的準(zhǔn)備包下引用。
尤其是當(dāng)你的應(yīng)用很大時(shí),希望盡量壓縮打包的bundle的大小,這個(gè)時(shí)候import的路徑就尤為重要了。
如果使用這種方式 import { Observable } from 'rxjs', 打包的時(shí)候會(huì)把rxjs下的內(nèi)容都打到bundle里面,這顯然是沒(méi)有必要的。

2017年4月18日 15:29