npm 包 redux-express 使用教程

阅读时长 9 分钟读完

介绍

redux-express 是一个结合了 Redux 和 Express 的 npm 包,它提供了一种方便的方式来将服务端生成的 Redux 状态同步到客户端,以及处理客户端的 Redux 状态更新请求。

安装

你可以使用 npm 或者 yarn 安装 redux-express:

使用

客户端

在客户端,你需要在 React 应用中使用 redux-express 提供的 ReduxExpressClient 组件包裹你的 App 组件。这个组件的作用是在应用启动时从服务端获取初始状态,并将其初始化到 Redux store 中。

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

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

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

服务端

在服务端,你需要使用 redux-express 提供的 middleware 将初始 Redux 状态序列化为字符串,以便在 HTML 页面中嵌入初始状态。此外,你还需要将客户端发送的 Redux action 分发给 Redux store,以更新服务端的应用状态。

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

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

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

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

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

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

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

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

示例应用

下面是一个使用 redux-express 的完整示例应用,以便更好地理解如何使用这个包:

客户端

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

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

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

服务端

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

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

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

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

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

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

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

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

Reducer

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

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

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

组件

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

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

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

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

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

总结

redux-express 提供了一种方便的方式来将服务端生成的 Redux 状态同步到客户端,并处理客户端的 Redux 状态更新请求。使用 redux-express 可以更好地管理应用状态,以及提高性能和用户体验。建议在需要使用服务端渲染的 React 应用中使用 redux-express。

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

纠错
反馈