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

阅读时长 6 分钟读完

本文将介绍一个自用较为频繁,且较为优秀的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

纠错
反馈