npm 包 @pratico/ngx-busy-indicator 使用教程

阅读时长 6 分钟读完

概述

在前端开发中,我们常常需要实现页面上的loading效果。为了方便开发者使用,社区中出现了诸如 @ng-bootstrap/ng-bootstrap、ngx-spinner等多种loading组件。其中,@pratico/ngx-busy-indicator也是一款不错的组件,相比于其他组件,该组件具有以下优点:

  • 灵活性高:可以同时移除多个loading效果
  • 支持 RxJS:可以轻松使用 RxJS 的任何操作符
  • 内置多种样式:支持多种样式,可根据自己的需求做出修改

这篇文章将介绍 @pratico/ngx-busy-indicator 的使用方法,以及如何将其应用到实际项目中。

安装

首先,在使用该组件前,我们需要在项目中安装 @pratico/ngx-busy-indicator 包,使用以下命令进行安装:

安装完成后,您需要在打开的app.module.ts文件中将 BusyIndicatorModule 导入到您的应用程序中:

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

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

使用

组件的 ngx-busy 指令可以附加到任何指定的 HTML 元素中,该元素在加载过程中将显示 loading 效果。下面是一个基本的代码示例:

在上面的示例中,我们为 button 元素添加了 ngx-busy 指令,并将 busy 属性设置为 isLoading。这意味着当 isLoading 的值为 true 时,该元素将显示 loading 效果,反之则不显示。

如果不需要在某个元素中显示 loading 效果,可以使用 ngx-busy-target 指令。

在这个例子中,我们使用 *ngIf 来控制一个视图区域是否显示,而 *ngx-busy 指令则用于另一个 HTML 元素中。ngx-busy-target 指令用于告诉组件在哪里显示 loading 效果。

如果您需要同时在多个元素中显示 loading 效果,则可以使用 ngx-busy-overlay 指令。

在这个示例中,我们使用 *ngFor 创建了多个元素,而 ngx-busy-overlay 指令告诉组件在哪些元素中显示 loading 效果。

高级用法

除了常规的使用方法外,@pratico/ngx-busy-indicator 还支持更多高级用法。

可自定义样式

您可以轻松地自定义 loading 效果的样式,只需使用 busyConfig 配置即可:

在上面的代码中,我们定义了一个自定义的 busyConfig。其中,backdropBackgroundColour 表示 loading 效果的背景色,template 则表示了自定义的 loading 效果样式,delay 表示 loading 效果延迟消失的时间。

使用 RxJS

@pratico/ngx-busy-indicator 还支持使用 RxJS。您可以将 busy 属性绑定到一个 Observable,然后在该 Observable 中使用 RxJS 操作符以控制 loading 效果是否显示。

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

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

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

在这个示例中,当用户单击 "Click me to start loading" 按钮时,会生成一个 Observable,然后在 finalize 操作符中将 isLoading 置为 true。在这个操作中,我们还使用了 timeout 设置了一个延迟,以便能够更好地看到 loading 效果。

结论

虽然 @pratico/ngx-busy-indicator 功能强大,用途广泛,但是使用它并不复杂,只需要几个简单的步骤即可将其引入项目中,并进行使用。希望通过这篇文章能够帮您更好的掌握该组件的使用方法。

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

纠错
反馈