npm 包 extract-hoc 使用教程

阅读时长 7 分钟读完

在前端开发中,高阶组件(HOC)已经是一个非常常见的概念,可以说是 React 工程师必须掌握的技能之一。从 React16.3 版本开始,React 社区提供了类似 createRef,forwardRef 等常用的核心 API 一样,提供了专门用于实现 HOC 的 API 和方式。本文将为大家介绍另一个非常实用的工具——extract-hoc,它能够帮助 React 开发者快速地将复杂的 HOC 拆解成更为简洁和易读的模块,从而提高代码的可Readability 和可维护性。

extract-hoc 概述

extract-hoc 是一个专门用于 HOC 拆解的 npm 包,在提高可 Readability 和可维护性的同时,还能够更好地模块化相同的 HOC 功能,供其他组件重复使用,提高代码的复用性。该包使用简单,支持基于 TypeScript 语言的 React 项目使用,并且还提供了非常详细的文档,方便开发者上手。

extract-hoc 使用教程

下面我们将通过一个简单的示例,详细介绍 extract-hoc 的使用方法。

安装 extract-hoc

首先,我们需要在项目中进行安装 extract-hoc 包,我们可以通过 npm 或者 yarn 命令来进行安装:

或者

示范

我们假设这样一种场景,我们的应用有若干个页面组件,这些组件在渲染之前都需要权限校验,校验的逻辑实现是一个 HOC(高阶组件):

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

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

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

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

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

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

  ------ ----------------------------------------
-
展开代码

然后,我们在每个需要权限校验的 Page 中使用该 HOC(高阶组件):

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

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

------ ------- ---------------------
展开代码

众所周知,使用 HOC 在组件中包裹一个包含其他组件逻辑的组件,使得代码更加复杂和难以阅读。如果一个应用中有多个 HOC,最终页面代码将变得极其混乱。此时,利用 extract-hoc 将其拆分成可复用的模块,将会提高应用程序的可维护性和可读性。

我们可以利用 extract-hoc 包将 requireAuth 拆解为两个部分:一个是组件部分(Authentication),另一个是功能部分(requireAuth),操作如下:

安装命令基于npm 或者yarn 命令来进行安装:

或者

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

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

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

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

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

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

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


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

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

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

------ ------- -----------
展开代码

首先,我们需要将 Authentication 组件从 requireAuth 中剥离出来并单独定义。然后,我们将 Authentication 组件 export。最后,我们需要在 requireAuth 中引用 Authentication 组件,最终的代码分为两个文件,分别是 authentication.js 和 require_auth.js,可以单独进行导入和使用。这样,我们的代码就变得更加清晰和易于维护。

总结

extract-hoc 是一个非常实用的 npm 包,在提高代码可维护性和可 Readability 的同时,还能够提高代码的复用性和模块化程度,使代码更容易阅读和维护。虽然使用 HOC 可能会使代码变得冗长和难以阅读,但是 extract-hoc 的出现解决了这个问题,为了让代码更加简洁易读,我们应该引入 extract-hoc 的这种思想来重构代码,使代码更加易读和易于维护。

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