Ionic 3 延遲載入(Lazy Load)實戰(一)

来源:https://www.cnblogs.com/parry/archive/2018/04/20/ionic_lazy_load_part_1.html
-Advertisement-
Play Games

本文分享並演示了在 Ionic 3 框架中如何進行模塊的延遲載入(Lazy Load)開發。 本文分享並演示了在 Ionic 3 框架中如何進行模塊的延遲載入(Lazy Load)開發。 在我的實戰課程 "「快速上手Ionic3 多平臺開發企業級問答社區」" 中,因為開發的仿知乎 App 模塊間的加 ...


截圖

本文分享並演示了在 Ionic 3 框架中如何進行模塊的延遲載入(Lazy Load)開發。

本文分享並演示了在 Ionic 3 框架中如何進行模塊的延遲載入(Lazy Load)開發。

在我的實戰課程「快速上手Ionic3 多平臺開發企業級問答社區」中,因為開發的仿知乎 App 模塊間的載入沒有使用到延遲載入(懶載入,Lazy Load)的技術,而當有些同學在開發自己的 App 越來越複雜的時候,發現了模塊載入的性能問題。

這時就出現了需要將模塊延遲載入的需求,而 Ionic 3 的一個特性就是支持延遲載入,而且代碼的變動非常小。

為了給各個階段的同學一個開發演示,本文就直接給大家演示一下 Ionic 3 的模塊延遲載入開發。

關於 Ionic 框架學習過程中遇到的各種常見問題,可以參見我從一千多個課程提問中給大家整理出來的常見問題 Q&A 文章。

1. 項目初始化

首先通過 Ionic CLI 新建一個空項目,命令為 ionic start lazyLoad blank

截圖

空項目啟動後如下圖所示。

截圖

src/app/app.module.ts 文件中的 declarationsentryComponents 節點下可以看到 Ionic 自動聲明瞭 MyAppHomePage 兩個模塊。

截圖

這樣的預設配置方式,就會讓所有聲明的頁面模塊在 App 啟動時一次載入起來,可能會造成相關的性能問題。

2. 模塊的延遲載入

我們首先刪除 src/app/app.module.ts 文件中的 HomePage 模塊的聲明以及調用。

然後在文件 src/pages/home/home.module.ts 中去單獨定義 HomePage 模塊的聲明,代碼如下圖所示。

截圖

並修改 src/pages/home/home.ts 添加 @IonicPage 裝飾器的導入與調用,代碼如下圖所示。

截圖

並修改 src/app/app.component.ts 文件中的 rootPage 的定義。

rootPage:any = 'HomePage';

至此,我們就輕鬆地配置好了 HomePage 模塊的延遲載入功能。

3. 測試延遲載入

我們打開 Chrome 的網路監控模板,刷新 App,可以看到 JavaScript 文件的請求與載入。

截圖

main.js 文件是整個 App 框架以及相關依賴的打包文件,而 0.js 就是分離後的 HomePage 模塊的代碼,我們可以看到對應的模塊已經在 main.js 之後進行了延遲載入。

而當你的 App 包含非常多頁面的時候,你肯定不希望所有的頁面模塊一次都打包在 main.js 中並一次請求載入進來,所以,延遲載入可以實現「用到哪個頁面模塊就去載入哪個模塊的代碼」,可以大大提高 App 的運行性能。

後續的文章我們還將深入探究延遲載入的原理以及更加複雜的應用場景。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前言: 一年來一直做得是後端的東西,沒有寫前端代碼,忘乾凈了,之前也只用jQuery,好歹還能做點效果。想著撿起來一點,要不然枉費了師傅的栽培。 一直在看博客,但沒有屬於自己的東西。this has to change. why not start now?俗話說只要代碼敲得夠快,悲傷就追不上我。 ...
  • 全書共15章,主要包括網頁製作基礎、Dreamweaver CC網頁製作、Photoshop CC網頁圖像設計、Flash CC網頁動畫設計以及綜合案例實戰5個部分。通過本書的學習,不僅能讓讀者學會三大軟體的基本操作,而且本書中列舉的實戰案例,還可以讓讀者舉一反三,在實戰工作中用得更好。 此外,本書 ...
  • 是不是已經厭倦了那些深奧的HTML書?你可能在抱怨,只有成為專家之後才能讀懂那些書。那麼,找一本新修訂的《Head First HTML與CSS(第2版)》吧,來真正學習HTML。你可能希望學會HTML和CSS來創建你想要的Web頁面,從而能與朋友、家人、粉絲和狂熱的顧客更有效地交流。你還希望使用全 ...
  • CSS+DIV網頁樣式佈局實戰從入門到精通通過精選案例引導讀者深入學習,系統地介紹了利用CSS和DIV進行網頁樣式佈局的相關知識和操作方法。 全書共21章。第1~5章主要介紹網頁樣式佈局的基礎知識,包括基本概念和語法、代碼的編寫方法、盒子模型及高級特性等;第6~11章主要介紹網頁樣式佈局的常用設置, ...
  • 移動互聯網原型設計,簡單來說,就是使用建模軟體製作基於手機或者平板電腦的App,HTML 5網站的高保真原型。在7.0 之前的版本中,使用Axure RP進行移動互聯網的建模也是可以的。比如,對於桌面的網站模型,製作一個1024像素寬度的頁面就可以了;現在針對移動設備,製作320像素寬度的頁面就好了 ...
  • github地址:https://github.com/anxizhihai/JournalismProject.git ...
  • 前言 工作中要用到.在github上找的大部分都是豎屏滾動沒辦法只能自己手動寫. 本來只是想隨便實現一下的,結果一時興起把它弄成了一個簡單的小插件,開了個github倉庫(希望路過點個星) "JS橫屏滾動插件" 因為我自己就是用戶,儘量簡化了用戶要做的操作.現在使用起來像是這個樣子 思路 1. 公告 ...
  • 在這一篇文章中,我們從源碼的角度再次理解下 setState 的更新機制,供深入研究學習之用。 在上一篇手記「 "深入理解 React JS 中的 setState" 」中,我們簡單地理解了 React 中 setState “詭異”表現的原因。 源碼的部分為了保證格式顯示正常就截圖了,查看源碼點擊 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 插件化的需求主要源於對軟體架構靈活性的追求,特別是在開發大型、複雜或需要不斷更新的軟體系統時,插件化可以提高軟體系統的可擴展性、可定製性、隔離性、安全性、可維護性、模塊化、易於升級和更新以及支持第三方開發等方面的能力,從而滿足不斷變化的業務需求和技術挑戰。 一、插件化探索 在WPF中我們想要開 ...
  • 歡迎ReaLTaiizor是一個用戶友好的、以設計為中心的.NET WinForms項目控制項庫,包含廣泛的組件。您可以使用不同的主題選項對項目進行個性化設置,並自定義用戶控制項,以使您的應用程式更加專業。 項目地址:https://github.com/Taiizor/ReaLTaiizor 步驟1: ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • Channel 是乾什麼的 The System.Threading.Channels namespace provides a set of synchronization data structures for passing data between producers and consume ...
  • efcore如何優雅的實現按年分庫按月分表 介紹 本文ShardinfCore版本 本期主角: ShardingCore 一款ef-core下高性能、輕量級針對分表分庫讀寫分離的解決方案,具有零依賴、零學習成本、零業務代碼入侵適配 距離上次發文.net相關的已經有很久了,期間一直在從事java相關的 ...
  • 前言 Spacesniffer 是一個免費的文件掃描工具,通過使用樹狀圖可視化佈局,可以立即瞭解大文件夾的位置,幫助用戶處理找到這些文件夾 當前系統C盤空間 清理後系統C盤空間 下載 Spacesniffer 下載地址:https://spacesniffer.en.softonic.com/dow ...
  • EDP是一套集組織架構,許可權框架【功能許可權,操作許可權,數據訪問許可權,WebApi許可權】,自動化日誌,動態Interface,WebApi管理等基礎功能於一體的,基於.net的企業應用開發框架。通過友好的編碼方式實現數據行、列許可權的管控。 ...
  • 一、ReZero簡介 ReZero是一款.NET中間件 : 全網唯一開源界面操作就能生成API , 可以集成到任何.NET6+ API項目,無破壞性,也可讓非.NET用戶使用exe文件 免費開源:MIT最寬鬆協議 , 一直從事開源事業十年,一直堅持開源 1.1 純ReZero開發 適合.Net Co ...
  • 一:背景 1. 講故事 停了一個月沒有更新文章了,主要是忙於寫 C#內功修煉系列的PPT,現在基本上接近尾聲,可以回頭繼續更新這段時間分析dump的一些事故報告,有朋友微信上找到我,說他們的系統出現了大量的http超時,程式不響應處理了,讓我幫忙看下怎麼回事,dump也抓到了。 二:WinDbg分析 ...
  • 開始做項目管理了(本人3年java,來到這邊之後真沒想到...),天天開會溝通整理需求,他們講話的時候忙裡偷閑整理一下常用的方法,其實語言還是有共通性的,基本上看到方法名就大概能猜出來用法。出去打水的時候看到外面太陽好好,真想在外面坐著曬太陽,回來的時候好兄弟三年前送給我的鍵盤D鍵不靈了,在打"等待 ...