npm 包 redux-session-storage-gatorade 使用教程

阅读时长 9 分钟读完

简介

redux-session-storage-gatorade 是一个状态管理库 redux 的扩展,它提供了一个简单的方式将 redux 的状态保存到浏览器本地存储中,并且支持使用加密算法对状态进行加密保护。它使用了 sessionStorage 作为数据存储介质,因此可以避免 cookies 和 localStorage 的一些限制,比如在隐身模式下cookies不可用的问题。

本教程将介绍如何安装、配置和使用 redux-session-storage-gatorade。

安装

使用 npm 安装:

配置

在你的 redux 应用中添加 redux-session-storage-gatorade 插件。首先创建一个中间件来保存数据到 sessionStorage:

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

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

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

然后将其添加到 redux 的中间件列表中:

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

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

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

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

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

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

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

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

现在,每当 redux 的状态改变时,配置的中间件将自动将新的状态保存到 sessionStorage 中。

使用

在你的 redux 应用中使用 redux-session-storage-gatorade 插件:

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

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

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

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

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

在这个例子中,我们将 counterReducer 的状态保存在 sessionStorage 中,并使用一个 key(root)将其存储在 sessionStorage 中。我们还可以指定是否加密(encrypt)存储的数据。

现在,你的 redux 应用会将新的状态自动保存到 sessionStorage 中,且当用户刷新页面后,应用会从 sessionStorage 中恢复之前的状态。

示例代码

下面是一个计数器应用的完整示例代码,使用了 redux-session-storage-gatorade 插件。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

使用上面的示例代码,你可以创建一个计数器应用,并使用 redux-session-storage-gatorade 插件将其状态保存到 sessionStorage 中。

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

纠错
反馈