React Hook 实现 Modal 弹窗

阅读时长 5 分钟读完

随着前端技术的不断发展,React 在前端领域越来越受到开发者的追捧。而 React Hook 则是 React 16.8 版本新增的一项特性,它能够让开发者在函数组件中使用 state 和其他 React 特性。本文将介绍如何使用 React Hook 实现 Modal 弹窗,让用户在点击按钮时弹出一个可关闭的弹窗。

前置条件

在开始本文的实践部分之前,您需要了解以下知识:

  • React 基础概念和语法
  • React Hook 的基本使用方法

实践步骤

下面将会分步骤实现一个 Modal 弹窗。这个弹窗包含一个打开按钮和一个关闭按钮。

#1 创建 Modal 组件

首先,我们需要创建一个 Modal 组件用于展示弹窗的内容。在这个组件中,我们需要添加两个按钮用于打开和关闭弹窗。在这两个按钮的点击事件中,我们需要使用 React Hook 中的 useState 方法来更新弹窗的状态。

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

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

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

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

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

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

#2 将 Modal 组件包含在页面中

接下来,我们需要将 Modal 组件包含在页面中并展示。在这个例子中,我们将 Modal 组件包含在 App 组件中并展示。

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

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

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

现在,我们点击打开按钮就能够展示弹窗了。然而,当我们点击弹窗外的区域时并不能关闭弹窗。接下来我们通过 React Hook 的 useEffect 方法来解决这个问题。

#3 使用 useEffect 方法来关闭弹窗

在上一步中我们已经能够打开弹窗了,但当用户点击弹窗外的区域时并不能关闭弹窗。为了实现点击弹窗外的区域时能够关闭弹窗,我们需要使用 React Hook 的 useEffect 方法。我们可以监听 document 的 click 事件,当点击弹窗外的区域时,关闭弹窗。

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

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

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

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

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

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

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

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

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

现在,我们就能够在点击弹窗外的区域时,关闭弹窗了。

总结

在本文中,我们使用 React Hook 实现了一个具有关闭功能的 Modal 弹窗。使用 React Hook 可以让我们更加简单地使用 state 和其他 React 特性,并且也不需要知道类组件和生命周期方法。希望这篇文章对您的学习和开发有所帮助。

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

纠错
反馈