在 React 中使用 Redux 和 React Router 的教程

阅读时长 9 分钟读完

React 是一款非常流行的 JavaScript 框架,它能够帮助程序员快速构建交互式的单页应用程序。但是,在构建大型应用时,很容易陷入状态管理和路由管理方面的困境。因此,我们需要使用 Redux 和 React Router 这两个工具来解决这个问题。

Redux

Redux 是一款用于 JavaScript 应用程序状态管理的开源库。它可以帮助我们管理整个应用程序的状态,从而使代码更加模块化、简单和可维护。Redux 核心的设计理念是单向数据流,这意味着应用程序的状态是不可变的,且只能通过触发 actions 来改变。

安装和配置 Redux

首先,我们需要在 React 应用程序中安装 Redux。

接下来,我们需要在应用程序中创建一个 Redux store。Redux store 是应用程序的中央数据仓库,它管理整个应用程序的状态。

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

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

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

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

通过上面的代码,我们创建了一个名为 store 的 Redux store,使用 createStore 方法创建,然后传入一个叫 reducer 的函数来管理状态。

在组件中使用 Redux

现在,我们已经创建了 Redux store,接下来的问题是如何在 React 组件中使用它。我们需要使用 react-redux 库中的 Provider 组件、connect 函数来实现。

首先,让我们在应用程序的根组件中使用 Provider 组件,把我们创建的 Redux store 传入其中。

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

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

现在,在任何组件中,我们都可以通过 connect 函数将组件连接到 Redux store。

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

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

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

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

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

通过上述代码,我们在 Counter 组件中使用了连接到 Redux store 的 connect 函数,通过 mapStateToProps 函数将 Redux store 中的状态注入到组件的 props 中,通过 mapDispatchToProps 函数将组件的操作注入到 Redux store 的操作中。

React Router

React Router 是一款用户友好的路由器解决方案,它可以帮助我们构建单页应用程序中的路由功能。React Router 能够帮助我们将页面 URL 映射到应用程序中的组件,并处理浏览器历史、前进和后退导航逻辑。

安装和配置 React Router

首先,我们需要安装 React Router。

接下来,我们需要在应用程序中设置路由。我们可以通过 Route 组件将页面组件映射到 URL 中。

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

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

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

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

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

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

通过上述代码,我们在 App 组件中设置了路由,通过 BrowserRouter 组件实现路由器。然后我们在 nav 中添加了两个链接,分别对应着 HomeAbout 两个页面,通过 Route 组件将这两个页面和 URL 映射起来。

嵌套路由

有时候我们的组件是有子组件的,所以需要嵌套路由。

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

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

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

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

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

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

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

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

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

通过上述代码,我们嵌套了一个 Topics 组件,并使用 Route 组件将其和 URL 映射起来。同时,我们可以在 Topics 组件中设置子路由,并使用嵌套的 Route 组件将其和 URL 映射起来。

结论

Redux 和 React Router 都是非常重要的工具,能够帮助我们在构建大型应用程序时解决状态管理和路由管理方面的问题。在本文中,我们学习了如何安装和配置 Redux 和 React Router,并使用示例代码演示了如何在 React 应用程序中使用它们。希望本文对您有所帮助,欢迎大家提出宝贵的意见和建议。

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

纠错
反馈