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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...