Angular 中如何实现懒加载 - 教程

阅读时长 6 分钟读完

懒加载是指按需加载模块或组件,而不是一次性加载全部的资源。懒加载能够帮助我们加速应用程序的启动时间,降低应用的初始加载时间,从而提高用户体验。在 Angular 应用程序中实现懒加载非常简单,本文将介绍如何使用 Angular 内置的懒加载机制。

懒加载的优势

  1. 减少应用程序的起始加载时间,用户体验更佳
  2. 程序应用采用惰性的方法导致某些加载请求不只在启动的时候,可以缩小应用文件体积,减少网络带宽消耗,更好的进行应用程序优化
  3. 根据用户的需求来按需加载模块,避免整体页面重刷,具备更好的交互性和响应性能力

使用 Angular 内置的懒加载机制

步骤一:生成模块

首先,我们为要懒加载的模块生成一个新的模块文件:

步骤二:更新路由

我们需要到 app-routing.module.ts 中配置定义路径和要懒加载的模块,然后在 loadChildren 属性中指定模块的路径。下面是一个简单的路由配置实现懒加载:

-- -------------------- ---- -------
-- ----------------------------- 

------ - -------- - ---- ----------------
------ - ------- ------------ - ---- ------------------
------ - ----------------- - ---- ----------------------------------

----- ------- ------ - -
  - ----- --- ---------- ----------------- --
  - ----- ------------- ------------- --------------------------------------------------------- --
--

-----------
  -------- -------------------------------
  -------- --------------
--
------ ----- ---------------- - -

步骤三:实现懒加载

在导航到 /my-feature 路径时,Angular 将加载 MyFeatureModule 模块。懒加载就是在按需请求时进行加载:

-- -------------------- ---- -------
------ - -------- - ---- ----------------
------ - ------------ - ---- ------------------
------ - ---------------------- - ---- ------------------------------
------ - ------------------ - ---- -------------------------

-----------
  -------- -
    -------------
    ----------------------
  --
  ------------- -
    ------------------
  -
--
------ ----- --------------- - -

-- ---------------------------------------------------

------ - --------- - ---- ----------------

------------
  --------- -----------------
  --------- ------- -------------
--
------ ----- ------------------ - -

步骤四:根据需要配置预加载或者不预加载

在非懒加载的加载情况下,当构建应用程序之后,在一个下载程序包的过程中,Angular CLI 将 min-length-chunk-size 用于阈值,如果一个模块达到阈值大小,就将该模块拆分成两个文件。Angular CLI 只会自行拆分未被引用的模块。Angular CLI 仅仅根据导航意向自动预加载模块。

我们可以在根模块中添加以下代码来使用预加载:

-- -------------------- ---- -------
------ - -------- - ---- ----------------
------ - ------- ------------- ----------------- - ---- ------------------
------ - ----------------- - ---- ----------------------------------

----- ------- ------ - -
  - ----- --- ---------- ----------------- --
  - ----- ------------- ------------- ---------------------------------------------------------- ----- - -------- ---- - --
--

-----------
  -------- ----------------------------- - ------------------- ----------------- ----
  -------- --------------
--
------ ----- ---------------- - -

如果想防止皮质空闲内容的预加载,我们可以将策略从PreloadAllModules更改为NoPreloading。如下所示:

-- -------------------- ---- -------
------ - -------- - ---- ----------------
------ - ------- ------------- ------------ - ---- ------------------
------ - ----------------- - ---- ----------------------------------

----- ------- ------ - -
  - ----- --- ---------- ----------------- --
  - ----- ------------- ------------- ---------------------------------------------------------- ----- - -------- ---- - --
--

-----------
  -------- ----------------------------- - ------------------- ------------ ----
  -------- --------------
--
------ ----- ---------------- - -

结论

懒加载是帮助我们优化 Angular 应用程序性能和用户体验的便利方法。通过使用 Angular 内置的懒加载机制,我们可以按需加载模块和组件,从而减少冗余的加载并提高应用程序的启动速度。为了提高应用的性能和用户体验,我们建议您在项目中使用懒加载。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/677156216d66e0f9aacda669

纠错
反馈