基于angular6.0實現(xiàn)的一個組件懶加載功能示例
我們常常會遇到這樣一個問題,當我們使用一個第三方控件庫的時候,我們只用到了其中 1 個或某幾個組件,會連帶一大堆無用的東西,造成體積臃腫不堪。又或者首頁用到的組件較多,首頁加載速度緩慢,這個時候,我們或許需要加載用戶可視范圍內(nèi)用到的組件,隨著用戶的瀏覽下拉,我們再去加載這些組件,漸進式加載,漸進式體驗,這個時候你或許就用到了本工具所實現(xiàn)的功能。或者一個頁面的某些不重要區(qū)域,比如第三方廣告又或者不重要的元素,可以采用懶加載懶渲染,降低用戶首屏等待時間。一切都在用戶不知不覺中進行。大大增加用戶體驗,特別是中大型項目,優(yōu)化必備!
安裝
yarn add iwe7-lazy-load
使用
import { Iwe7LazyLoadModule, LazyComponentsInterface } from 'iwe7-lazy-load'; // 用到的懶加載組件 let lazyComponentsModule: LazyComponentsInterface[] = [ { // 組件的selector path: 'lazy-test', // 組件的相對地址 loadChildren: './lazy-test/lazy-test.module#LazyTestModule' } ]; @NgModule({ imports: [Iwe7LazyLoadModule.forRoot(lazyComponentsModule)], // 注意加上這些 schemas: [CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA] }) export class AppModule {}
<div #ele> <lazy-test></lazy-test> </div>
import { LazyLoaderService } from 'iwe7-lazy-load'; @ViewChild('ele') ele: ElementRef; constructor( public lazyLoader: LazyLoaderService, public view: ViewContainerRef ) {} ngOnInit() { // 開始渲染懶組件 this.lazyLoader.init(this.ele.nativeElement, this.view); }
定義懶加載組件 demo
import { LazyComponentModuleBase } from 'iwe7-lazy-load'; @Component({ selector: 'lazy-test', template: ` i am a lazy` }) export class LazyTestComponent {} @NgModule({ imports: [ RouterModule.forChild([{ path: '', component: LazyTestComponent }]) ], declarations: [LazyTestComponent] }) export class LazyTestModule extends LazyComponentModuleBase { getComponentByName(key: string): Type<any> { return LazyTestComponent; } }
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
angularJs復選框checkbox選中進行ng-show顯示隱藏的方法
今天小編就為大家分享一篇angularJs復選框checkbox選中進行ng-show顯示隱藏的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10關于AngularJS中幾種Providers的區(qū)別總結
這篇文章主要給大家介紹了關于AngularJS中幾種Providers的區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用AngularJS具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2020-05-05AngularJS實現(xiàn)分頁顯示數(shù)據(jù)庫信息
這篇文章主要為大家詳細介紹了AngularJS實現(xiàn)分頁顯示數(shù)據(jù)庫信息效果的相關資料,感興趣的小伙伴們可以參考一下2016-07-07