我們常常會遇到這樣一個問題,當我們使用一個第三方控件庫的時候,我們只用到了其中 1 個或某幾個組件,會連帶一大堆無用的東西,造成體積臃腫不堪。又或者首頁用到的組件較多,首頁加載速度緩慢,這個時候,我們或許需要加載用戶可視范圍內(nèi)用到的組件,隨著用戶的瀏覽下拉,我們再去加載這些組件,漸進式加載,漸進式體驗,這個時候你或許就用到了本工具所實現(xiàn)的功能。或者一個頁面的某些不重要區(qū)域,比如第三方廣告又或者不重要的元素,可以采用懶加載懶渲染,降低用戶首屏等待時間。一切都在用戶不知不覺中進行。大大增加用戶體驗,特別是中大型項目,優(yōu)化必備!

目前創(chuàng)新互聯(lián)已為上1000+的企業(yè)提供了網(wǎng)站建設、域名、虛擬空間、成都網(wǎng)站托管、企業(yè)網(wǎng)站設計、宜川網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
項目地址github
安裝
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)容,希望對大家的學習有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
網(wǎng)站題目:基于angular6.0實現(xiàn)的一個組件懶加載功能示例
網(wǎng)頁URL:http://www.chinadenli.net/article30/gccpso.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、響應式網(wǎng)站、網(wǎng)站維護、網(wǎng)站設計、網(wǎng)站收錄、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)