搭建一个基于 React + Node + MySQL 的 SPA 应用实例教程

阅读时长 8 分钟读完

简介

随着 Web 技术的日新月异,前端开发人员需要不断提升自身的技术水平才能与业务需求相适应。React 是目前主流的前端框架之一,其提供了高效的组件化编程方式和灵活的状态管理机制。Node 是一个开源的 JavaScript 运行环境,具有事件驱动、非阻塞 I/O 等特性,能够方便地构建高性能的 Web 应用。MySQL 是一款流行的关系型数据库,通常用于存储 Web 应用的数据。

将这三种技术相结合,可以实现一个完整的 SPA(Single Page Application)应用,本文将介绍如何搭建一个基于 React + Node + MySQL 的 SPA 应用实例。

准备工作

在开始之前,需要确保已经安装了以下软件和工具:

创建项目

首先,我们需要创建一个基础的项目目录结构。在命令行终端中输入以下命令:

以上命令会创建一个名为 react-node-mysql-demo 的文件夹,并在其中创建一个名为 server.js 的文件,还会生成一个默认的 package.json 配置文件。

接下来,我们需要安装一些必要的依赖包:

  • express 是一个 Node.js Web 框架,用于处理 HTTP 请求和响应。
  • mysql 是 Node.js 的 MySQL 数据库驱动程序。
  • body-parser 是一个 Node.js 中间件,用于解析 HTTP 请求的主体。
  • cors 是一个 Node.js 中间件,用于控制跨域资源共享。

编写服务器代码

server.js 文件中,我们需要编写一个简单的服务器程序,用于处理客户端的 HTTP 请求:

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

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

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

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

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

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

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

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

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

以上服务器程序会创建一个名为 app 的 Express 实例,并配置一些中间件。其中,app.use(cors()) 的作用是允许跨域访问,app.use(bodyParser.json()) 的作用是解析 HTTP 请求页面的 JSON 数据。

接着,我们使用 mysql.createConnection() 方法创建一个 MySQL 数据库连接。在这里,我们使用本地 MySQL 服务器,并连接到名为 test 的数据库。

在这个示例程序中,我们定义了一个 /api/users 的路由,该路由会从 MySQL 数据库中查询所有用户数据,并将其返回到客户端。

最后,我们使用 app.listen() 方法创建一个 HTTP 服务器,并使其在本地的 5000 端口上运行。

编写客户端代码

现在,我们需要编写一个简单的客户端代码,用于与服务器进行交互并显示数据。在项目根目录中,创建一个名为 client 的文件夹,并在其中创建一个名为 src 的文件夹。在 src 文件夹中,创建三个文件:

  • index.js
  • App.js
  • UserList.js

首先,我们需要在 index.js 文件中渲染 App 组件:

接着,我们需要在 App.js 文件中定义 App 组件:

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

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

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

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

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

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

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

在上面的代码中,我们首先使用 import 命令引入 UserList 组件。接着,我们定义一个名为 App 的 React 组件,并初始化 this.state 对象。在 componentDidMount() 方法中,我们使用 fetch() 方法从服务器加载用户数据,并使用 this.setState() 方法将其存储在组件的状态中。

最后,在 render() 方法中,我们将用户列表作为属性传递给 UserList 组件,并将其呈现在界面上。

最后,我们需要在 UserList.js 文件中定义 UserList 组件:

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

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

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

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

以上代码中,我们定义了一个名为 UserList 的组件,并使用 props 属性将用户列表传递给组件。在 render() 方法中,我们使用 map() 方法遍历用户列表,并将每个用户的名称作为列表项呈现在界面上。

运行应用

现在,我们已经完成了服务器和客户端的代码编写。在命令行终端中,进入项目根目录,并启动服务器程序:

接着,在另一个命令行终端中,进入项目根目录的 client 文件夹,并启动客户端程序:

在浏览器中打开 http://localhost:3000,即可看到我们编写的 SPA 应用。当客户端应用启动时,它会从服务器加载用户数据,并显示在应用界面中。

总结

在本文中,我们学习了如何使用 React、Node 和 MySQL 创建一个基于 SPA 的 Web 应用。我们从服务器端开始,使用 Express 框架和 MySQL 数据库驱动程序创建一个简单的 API,用于查询并返回用户数据。接着,我们创建了一个名为 App 的 React 组件,使用 fetch() 方法从服务器加载用户数据,并使用 UserList 组件在界面上呈现用户列表。最后,我们使用 npm 命令启动服务器和客户端应用,并在浏览器中查看应用效果。

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

纠错
反馈