使用 Rekit 构建 React + Redux + Webpack SPA 应用

阅读时长 6 分钟读完

在现代 web 开发中,单页应用(SPA)已经成为主流,而 React 和 Redux 也成为了构建 SPA 的主要技术栈。随着应用复杂度的增加,需要更加高效和可维护的开发方式。Rekit 是一个可以帮助开发者更加轻松地构建 React+Redux 应用的工具,它基于 Webpack 和 React 种种优势,提供了一种全新的方式来构建一个完整的 React+Redux 应用。本文将针对 Rekit 进行介绍和使用指导,以使用 Rekit 构建 React+Redux SPA 应用为例。

什么是 Rekit

Rekit 是一个开源工具,具备可扩展性的 CLI(命令行界面),它允许开发者通过不同的命令构建、调试和测试应用,且没有任何侵入性的修改。Rekit 相比原始开发方式的优点如下:

  • 可扩展和可维护性高:大部分项目的代码结构、文件名和组件等都是由开发人员自行约定的,这导致了团队间代码规范和习惯的不同。Rekit 的结构是根据最佳实践的标准化结构来组织的,一旦一个团队熟悉了这种结构,无论团队大小或新的成员加入,都可以轻松构建应用。

  • 较少的出错概率:因为约定、而非配置的方式,因此开发者不需要编写大量的配置文件,也因此减少了由于人为失误导致的错误。

  • 更快的构建速度:维持一致的项目结构极大地提高了开发者效率,同时因为很多通用视图组件得到提前封装,大大节省了重复劳动,保持开发速度。

使用 Rekit 构建 React+Redux SPA 应用

在使用 Rekit 构建 React+Redux SPA 应用之前,需要通过以下命令安装 Rekit:

在安装完毕后,使用以下命令构建一个基本的 React+Redux SPA 应用:

在此我们以构建 my-app 为例,构建完成后的目录结构如下:

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

Rekit 提供了很多工具以及命令行,在构建一个 React+Redux SPA 应用的时候,比较常见的几个命令行包括:

  • rekit add feature xxx

用于给项目添加新的功能,其中 xxx 为新增功能的名称,添加新的功能会新增一些文件和文件夹。

  • rekit list feature

用于查看项目中所有的功能模块。

  • rekit remove feature xxx

用于删除项目中的某个功能模块。

  • rekit test

用于启动测试所有单元测试文件。

  • rekit build

用于构建项目打包。构建完成后,打包文件夹将会存放在 dist 目录中。

  • rekit clean

用于清理项目的缓存数据。

可见使用 Rekit 主要关注的是对应 4 个文件夹,分别是 actionscomponentsconstantscontainers 文件夹。下面会分别说明这 4 个文件夹的作用。

没错,我们的主要工作将会在这个文件夹内进行。

1. components

定义 ReactUI 组件,每个组件的主要工作是提供独立功能,将状态从父组件中抽离出来。

2. containers

这里的容器组件和组件组件区分开来,它负责把组件组织到页面中去。容器组件是一种特殊的 React 组件,它将组件需要的状态和方法以属性的方式传递给它们,在下一节状态管理中,我们把整个应用所有的状态都放在“窝”里,然后通过容器组件将状态映射到各个组件中去。

3. actions

一个动作就是一个 JavaScript 对象,它描述了用在应用中的动态数据。React 应用本质是一组动态数据与用户交互的过程,而 actions 的作用是将这些数据打包成一个写操作的对象,然后它们传递给 view,从而更新数据展示。在 Redux 中,action 又进一步细分为:action 类型(type)和 action 创建器(creator)。

4. reducers

一个 reducer 就是一个 JavaScript 函数,用于在整个应用的多个组件之间共享某些状态。reducer 是一个纯函数,它根据前一个状态和动作对象,计算并返回新的状态。Redux 的状态就是一个纯 JavaScript 对象,由多个 reducer 协作完成,每个 reducer 负责管理某个子部分的状态,它们从父组件中抽离出来的状态是传递给容器组件的。

示例代码

下面是一个使用 Rekit 构建 React+Redux SPA 应用的示例代码:

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

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

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

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

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

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

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

上述代码为 React 程序的入口,使用 connect 函数对组件进行处理,其中 mapStateToProps 函数可以将 Redux store 中的 state 映射到组件中的 props,而 mapDispatchToProps 函数可以将 store 中的 dispatch 函数传递到 props 中。最后,我们可以将一个 React 组件绑定到某个容器中。

总结

使用 Rekit 作为构建工具,可以极大地提高我们构建 React+Redux SPA 应用的效率,大大减少了项目开发的时间和精力。在此,希望大家能够使用 Rekit 更加愉快地构建我们的 React+Redux SPA 应用程序。

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

纠错
反馈