npm包jappwilson-react-load-mask使用教程

本文将介绍一个自用较为频繁,且较为优秀的npm包jappwilson-react-load-mask的使用教程,并分享其深度技术原理及其应用价值。本文的目标读者为有基础的前端开发同学。

什么是jappwilson-react-load-mask

jappwilson-react-load-mask是一个轻巧且易于使用的开源npm包,基于react hooks封装,实现了前端UI组件开发中常用的网页遮罩的功能。jappwilson-react-load-mask具备以下优点:

  • react hook封装,使用起来更加便捷。
  • 轻量级,安装便捷。
  • 自定义性更高,可以较好的满足用户特定需求。

如何使用jappwilson-react-load-mask

安装

通过 npm 安装 (推荐):

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

或者通过 yarn 安装:

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

使用

使用jappwilson-react-load-mask非常简单,只需要用LoadMask组件将需要遮罩的组件包封起来就行了,例如:

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

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

传递一个简单的loading属性,组件会做好其余事情。简单,对吧?

在这里,我们可以通过loading这一属性决定是否展示遮罩。我们还可以添加自定义的loadIcon和loadDescription,定义更为美观的遮罩框架,例如:

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

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

你的许多场景只使用默认旋转器和文本,因此请记住使用这种方法来选择一种自定义的外观。

深度技术原理

现在,我们来深入了解jappwilson-react-load-mask的实现原理。因为基于react hooks封装,我们重点来学习这个封装过程。

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

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

组件代码如上,简单明了。我们提出其中一些值得深入研究的点:

  1. 组件内部返回children,若不需要遮罩,则直接返回children,在children前面和children后面加上遮罩的div,实现遮罩的效果。
  2. 将自定义的loadIcon和loadDescription加入遮罩中,属性loading的值为true时显示遮罩,属性loading的值为false时隐藏遮罩。
  3. 遮罩的样式很好地运用了CSS,将div框架与CSS垂直中心的属性放到父div中,在遮罩元素引入z-index实现一定流畅的模态框效果。

真正的威力正在于上面的点,这是最值得注意的:

  1. 这是使用了React Hooks中的useEffect和useState,其中绑定的状态设置为loading,我们在后面的调用中约定好了它的默认值以及一些自定义需求。

那就是全部了。如果你想深入了解React Hooks的使用,这里是一个很好的练习和开端!

应用场景和价值

jappwilson-react-load-mask作为一个轻量级的遮罩组件,具有较大的应用场景和价值,可以被广泛应用于以下一些方面:

  • 加载页面或数据时的遮罩。

第一个应用场景是在页面或组件加载数据时,实现更良好的UI体验。常常展示在加载进来的接口数据loading图像,直到数据读取完毕。普遍应用在Api调用后 waiting 的等待时间处理。效果大家可以去看看Figma/Material Design/Design System/Google等项目统一定义的loading/加载时候的UI效果。这些场景变通也可以使用这个组件的效果。

  • 安全抹黑

第二个应用场景是为了着力于用户数据的保密性,我们可以让敏感数据在加载的时候.Mask。 这个方案可以放置一些未授权查询数据库的恶意攻击。 示例:使用前,请检查授权函数/大力默写 -“网络、数据、安全/”书籍中的一些技术原理(加盐/黑白糖/“授权”的同义词是“认证”)。这是一个基于延迟loadingData的健壮的方案。常常使用loading组件将等待时间推迟到视觉加载前面来完美处理。

  • 长数据请求时候的优化。

第三个应用场景是在执行大量数据,请求数量时,实现更好的操作手感。 即一个页面/组件,含有多个请求数据的API。如果同时使用了loading是不合适的,其改为实现:分批加载+loading状态的交替展示,这样比较符合“长数据”请求的习惯,适合于数据量较大的项目。

  • 特定数据项和操作的回填。

针对某些特定数据项和操作的回填,如表单数据保护、操作数据的加密存储等,可以使用此组件对在传输过程中的敏感数据项进行遮盖,增加了隐私保护。特别是敏感数据,被正常人员可访问时,容易引发一系列安全问题。此时,jappwilson-react-load-mask组件恰好有作用。

总结

jappwilson-react-load-mask提供了一种方便且稳固的方法,可在需要的时候简单而优雅地改善视觉效果。我们在此宣传的技能,希望大家能基于组件灵活创新外壳,创意无限。

源码及其更多示例可参见npm官方文档,祝大家愉快地学习!

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005524e81e8991b448cfd55


猜你喜欢

  • npm 包 @mrbatista/grunt-file-rename 使用教程

    在前端开发中,我们经常使用 Grunt 工具来处理各种任务。而在 Grunt 中,文件名的处理是一个相当常见的任务。npm 包 @mrbatista/grunt-file-rename 提供了一种方便...

    2 年前
  • npm 包 immutable-mapper 使用教程

    在前端开发中,经常需要对数据进行处理和转换。immutable-mapper 就是一个方便的 npm 包,它可以帮助我们在不改变原始数据的情况下,快速创建新的数据结构。

    2 年前
  • npm 包 pg-boss-rota 使用教程

    简介 pg-boss-rota 是一个基于 Node.js 的任务调度库,它使用 PostgreSQL 作为后端存储,可以在分布式系统中实现任务调度。此库旨在提供一种可靠、可扩展且可维护的方式来处理定...

    2 年前
  • npm 包 nodejs-day05 使用教程

    在前端开发中,npm 包是非常重要的一部分,它可以帮助我们方便地管理依赖、扩展功能等。本文介绍了一个常用的 npm 包 nodejs-day05,以及它的使用教程。

    2 年前
  • npm包 ewancoder-angular-localization 使用教程

    介绍 本文将介绍如何使用 ewancoder-angular-localization ,这是一个 AngularJS 模块,用于在您的应用程序中管理本地化内容。这个包支持的特性集包括自动检测设备语言...

    2 年前
  • npm 包 cobc 使用教程

    一、什么是 cobc? cobc 是一个可以在 Node.js 中运行 COBOL 程序的 npm 包。COBOL(Common Business Oriented Language)是一种用于商业数...

    2 年前
  • npm 包 node-sftp-deploy-i 使用教程

    前言 在网站开发中,我们常常需要将代码部署到服务器上。传统的部署方式是通过 FTP 或者 SSH 连接到服务器,手动上传文件。这种方式效率非常低,容易出错,难以维护。

    2 年前
  • npm 包 vue-pure-ui 使用教程

    在前端开发中,使用 UI 组件库可以让我们快速构建界面、提高开发效率。vue-pure-ui 是一个基于 Vue.js 的 UI 组件库,支持按需引入,提供了丰富的 UI 组件,适用于各种类型的前端项...

    2 年前
  • npm 包 ember-computed-enum 使用教程

    简介 在 Ember.js 应用中,经常需要使用枚举类型的数据进行处理。ember-computed-enum 是一个方便的 npm 包,用来帮助我们在 Ember.js 中定义枚举类型的数据,并提供...

    2 年前
  • npm 包 bingspeechrecognition-api 使用教程

    随着人工智能技术的发展,语音识别技术在前端开发中的应用越来越广泛。此处介绍一款基于 npm 包 bingspeechrecognition-api 的语音识别工具,帮助前端开发者实现语音输入和语音指令...

    2 年前
  • npm 包 react-bootstrap-table-r 使用教程

    在前端开发中,经常会遇到需要使用表格展示数据的需求。而在 React 开发中,可以使用一个非常方便和实用的 npm 包 react-bootstrap-table-r 来实现。

    2 年前
  • npm包:ripple-jquery使用教程

    在前端开发中,许多开发者都会遇到各种需求,其中一项常见的需求是想要为网站或web应用程序添加各种动画效果。Ripple-jQuery是一个方便实用的npm包,可以帮助您实现浪漫的涟漪动画效果,可以轻松...

    2 年前
  • npm 包 sugo-ci-agent 使用教程

    在前端开发中,自动化测试是必不可少的一环。而集成测试(Integration Test)更是对整个系统的一个综合测试,对于一些大型项目,它是非常必要的。 sugo-ci-agent 是一个用于集成测试...

    2 年前
  • npm 包 @gopalroy/biz-eightymiles 使用教程

    npm 包 @gopalroy/biz-eightymiles 是一个前端类的工具包,可以帮助开发者更轻松地实现业务需求,提高开发效率。本文将详细介绍该 npm 包的使用方法,包括安装、引入、接口说明...

    2 年前
  • npm 包 h-refresh 使用教程

    本教程将为你介绍如何使用 npm 包 h-refresh 来实现前端页面的下拉刷新功能。通过学习本教程,你将了解到如何使用这个 npm 包以及如何在你的项目中集成它。

    2 年前
  • npm 包 bootstrap-xxs 使用教程

    介绍 Bootstrap-xxs 是 Bootstrap 框架的一个扩展组件,它主要用于处理在移动设备上的响应式布局。Bootstrap-xxs 提供了针对小屏幕设备的布局方案,为移动设备优化的响应式...

    2 年前
  • npm 包 handler-decorator 使用教程

    简介 handler-decorator 是一个基于装饰器模式的 npm 包,它可以帮助我们更方便地实现某些常见但繁琐的处理逻辑,比如调试、错误捕获、性能统计等。通过使用 handler-decora...

    2 年前
  • npm包minizip-asm.js使用教程

    在前端开发中,压缩和解压缩文件是一个常见的需求。在这个领域,minizip-asm.js这个npm包无疑是一个非常好的选择。本文将会详细介绍如何使用这个npm包进行文件的压缩和解压缩操作。

    2 年前
  • npm包 pot-tools 使用教程

    在前端开发中,经常需要用到大量的图标,pot-tools是一个基于Node.js的工具,可以将SVG图标文件转换为字体格式,方便我们在前端项目中应用。本文将为大家介绍npm包pot-tools的使用方...

    2 年前
  • npm 包 homebridge-carwings 使用教程

    介绍 homebridge-carwings 是一个基于 Node.js 的 npm 包,它提供了一种简单方便的方式来控制 Carwings 相关的设备。通过将 homebridge-carwings...

    2 年前

相关推荐

    暂无文章