npm 包 redux-undo-immutable 使用教程

阅读时长 5 分钟读完

redux-undo-immutable 是一个 npm 包,它是一个 redux 插件,支持在 redux 应用程序中实现撤销/重做功能。与其他 redux 插件不同,redux-undo-immutable 使得你可以很容易地管理不可变(immutable)的状态,同时也支持你撤销 / 重做异步的 redux 操作。redux-undo-immutable 支持对状态做出更改且保证数据的不可变性,提高了代码的可重复性。

安装

你需要先安装 redux-undo-immutable,在你的项目目录下执行以下命令:

使用

redux-undo-immutable 插件添加到你的 store 中,并在 actions 中添加撤销和重做的 action

配置

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

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

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

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

添加撤销和重做的 action

使用 redux-undo-immutable 中提供的 ActionTypes 来获取撤销和重做的 actionType,然后在你的 action creators 中添加。

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

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

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

限制历史记录长度

使用 undoable() 的第二个参数 options 来限制历史记录长度。

过滤器

使用 undoable() 的第二个参数 options 来添加一个过滤器。

distinctState() 过滤器将忽略与之前存储的状态相等的动作。

示例代码

下面是一个完整的示例代码:

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

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

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

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

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

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

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

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

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

总结

使用 redux-undo-immutable 可以很容易地实现 redux 应用程序中的撤销/重做功能,并保证数据的不可变性。其提供了很多选项来定制历史记录,如限制历史记录长度、添加过滤器等。在开发中,我们可以根据业务需求,通过 redux-undo-immutable 实现更加优秀的 redux 应用程序。

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

纠错
反馈