npm 包 create-rrr-app 使用教程

阅读时长 8 分钟读完

引言

在构建一个 React 项目时,我们经常会遇到一些重复性的工作,如创建项目架构、配置 webpack 或者 babel 等。为了能够提高这些工作的效率,有一个方便的工具可以帮助我们一键完成这些繁琐的任务,那就是 create-rrr-app

create-rrr-app 是一个 React + Redux + React Router 的脚手架,基于官方脚手架 create-react-app 的基础上添加了对 reduxreact-router 的集成。在项目创建过程中,它帮我们完成了很多工作,从而使我们可以更集中地关注项目的核心部分。

本文将为大家介绍如何使用 create-rrr-app

安装

要使用 create-rrr-app,首先需要在本地安装它。

通过 npm 安装:

通过 yarn 安装:

如果你安装时遇到权限问题,请使用管理员身份运行命令。

创建项目

安装完成后,就可以在命令行中输入 create-rrr-app 来创建一个新的项目,如下所示:

其中,my-app 是创建的项目名称。当然,你也可以将其替换为你想要的项目名称。

运行项目

项目创建完成后,就可以在项目根目录下使用以下命令来运行项目:

或者使用 yarn

在项目启动后,你可以在浏览器中访问 http://localhost:3000 来查看效果。

项目目录结构

使用 create-rrr-app 创建的项目有如下目录结构:

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

其中,public 目录下是一些静态资源,如 HTML 模板、图标、应用程序的配置等。

src 目录下则是应用程序的代码,包括组件、redux action 和 reducer 等。

集成 Redux 和 React Router

使用 create-rrr-app 创建的项目已经默认集成了 Redux 和 React Router,我们只需要编写相应的代码,便可以使用这两个库。

React Router

我们可以在 src 目录下创建一个 Router.js 文件,该文件用于定义应用程序的路由。下面的代码演示了如何定义一个路由:

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

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

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

在上面的代码中,我们使用了 react-router-dom 库来定义路由。其中:

  • Switch 组件表示只匹配一个路由,当匹配到一个路由时,就不再匹配其他路由;
  • Route 组件表示一个路由,其中 path 属性表示路由的路径,component 属性表示路由对应的组件。

Redux

我们可以在 src 目录下创建一个 store 目录,该目录用于存放 Redux 相关的代码。下面的代码演示了如何创建一个 Redux store:

在上面的代码中,我们使用了 redux 库来创建 Redux store,rootReducer 是应用程序所有 reducer 的集合。

接着,我们需要在应用程序中使用该 store。例如,在 index.js 中引入 Providerstore

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

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

在上面的代码中,我们使用了 Provider 组件将 store 传递给所有子组件,在需要使用 statedispatch 的子组件中,可以通过 connect 方法来连接 store。

示例代码

最后,我们提供一个示例代码,该代码实现了一个计数器应用程序,用户可以通过点击按钮来调整计数器的值:

App.js

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

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

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

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

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

actions/index.js

reducers/index.js

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

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

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

Router.js

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

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

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

使用示例:

打开浏览器,访问 http://localhost:3000,即可看到计数器应用程序的效果。

参考资料:

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

纠错
反馈