使用React-Hooks开发聊天室之2.0版本

阅读时长 5 分钟读完

React Hooks 是 React 16.8 发布的新特性,用于在函数组件中添加状态和其他 React 功能。在这篇文章中,我们将使用 React Hooks 来开发一个简单的聊天室 2.0 版本。

前置知识

在继续之前,你需要熟悉以下技术:

  • React
  • JavaScript ES6
  • WebSocket

如果你不熟悉其中任何一项,请先学习它们再来阅读这篇文章。

技术栈

我们将使用以下技术栈来构建聊天室 2.0 版本:

  • React
  • React Hooks (useState, useEffect)
  • WebSocket

建立基本架构

首先,让我们建立聊天室的基本架构。在你的项目中创建一个名为 ChatRoom.js 的文件,并添加以下代码:

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

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

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

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

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

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

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

在这个代码中,我们定义了两个 state 变量 messagesmessage,分别用于存储已接收到的消息和当前正在输入的消息。我们还使用了 useEffect Hook 来建立 WebSocket 连接,并且定义了 handleInputChangehandleSubmit 函数来处理用户的输入。

建立 WebSocket 连接

现在,让我们在 useEffect 中建立 WebSocket 连接。添加以下代码:

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

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

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

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

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

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

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

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

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

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

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

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

在这个代码中,我们使用 new WebSocket() 建立了一个 WebSocket 连接,并在 onmessage 回调函数中处理从服务器接收到的消息。在 handleSubmit 函数中,我们发送用户输入的消息给服务器,并关闭连接。

测试聊天室

现在,让我们测试一下聊天室。在项目中创建一个名为 server.js 的文件,并添加以下代码:

纠错
反馈