基于angular6.0實(shí)現(xiàn)的一個(gè)組件懶加載功能示例
我們常常會遇到這樣一個(gè)問題,當(dāng)我們使用一個(gè)第三方控件庫的時(shí)候,我們只用到了其中 1 個(gè)或某幾個(gè)組件,會連帶一大堆無用的東西,造成體積臃腫不堪。又或者首頁用到的組件較多,首頁加載速度緩慢,這個(gè)時(shí)候,我們或許需要加載用戶可視范圍內(nèi)用到的組件,隨著用戶的瀏覽下拉,我們再去加載這些組件,漸進(jìn)式加載,漸進(jìn)式體驗(yàn),這個(gè)時(shí)候你或許就用到了本工具所實(shí)現(xiàn)的功能?;蛘咭粋€(gè)頁面的某些不重要區(qū)域,比如第三方廣告又或者不重要的元素,可以采用懶加載懶渲染,降低用戶首屏等待時(shí)間。一切都在用戶不知不覺中進(jìn)行。大大增加用戶體驗(yàn),特別是中大型項(xiàng)目,優(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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
angularJs復(fù)選框checkbox選中進(jìn)行ng-show顯示隱藏的方法
今天小編就為大家分享一篇angularJs復(fù)選框checkbox選中進(jìn)行ng-show顯示隱藏的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10
關(guān)于AngularJS中幾種Providers的區(qū)別總結(jié)
這篇文章主要給大家介紹了關(guān)于AngularJS中幾種Providers的區(qū)別的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用AngularJS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
AngularJS實(shí)現(xiàn)的簡單拖拽功能示例
這篇文章主要介紹了AngularJS實(shí)現(xiàn)的簡單拖拽功能,涉及AngularJS事件響應(yīng)及頁面元素屬性動態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-01-01
AngularJS實(shí)現(xiàn)分頁顯示數(shù)據(jù)庫信息
這篇文章主要為大家詳細(xì)介紹了AngularJS實(shí)現(xiàn)分頁顯示數(shù)據(jù)庫信息效果的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-07-07
AngularJS基礎(chǔ) ng-dblclick 指令用法
本文主要介紹AngularJS ng-dblclick 指令,這里對ng-dblclick基礎(chǔ)資料整理并詳細(xì)介紹,簡單的代碼實(shí)例和實(shí)現(xiàn)效果,希望能幫助學(xué)習(xí)AngularJS的朋友2016-08-08

