简介
immdux 是一个基于 Immutable.js 和 React Redux 的库,它提供了一种简单的方式来对 Redux 状态树中的 Immutable 对象进行操作。
安装
在安装 immdux 之前,你需要确保你的项目已经安装了以下依赖:
- react
- react-redux
- redux
- immutable
安装 immdux:
--- ------- ------
基本用法
- 定义状态树
------ - --- - ---- ------------ ----- ------------ - ----- ------ -- ----- ------- ---
- 创建 Action
----- --------- - -- -- -- ----- ------------ --- ----- ---------- - ------ -- -- ----- -------------- -------- - ----- -- ---
- 创建 Reducer
------ - ------------- - ---- --------- ----- ------- - --------------------------- - ---------- ------- -- --------------------- ------- -- ----- - --- ------------ ------- - -------- - ---- - -- -- ----------------- ------ ---
- 创建 Store
------ - ----------- - ---- -------- ------ - -------- - ---- -------------- ------ - --------------------------------------- - ---- ---------------------------------- ------ ------- ---- ------------ ----- ----- - ------------ -------- ---------------- ------------------------------------------ -- --
- 使用
------ ----- ---- -------- ------ - ------- - ---- -------------- ------ - ---------- ---------- - ---- ------------ ----- --- - -- ------ ----- ---------- ---------- -- -- - ------ - ----- --------------- --------- ----------- ------- -------------------------------------- ------- ----------- -- -------------------------- ------------- ------ -- -- ----- --------------- - ------- -- -- ------ ------------------- ----- ------------------ --- ----- ------------------ - - ---------- ----------- -- ------ ------- ------------------------ -------------------------
深度用法
与不可变对象进行操作的 immdux 提供了更方便的操作方式。
Basic API
API | 描述 |
---|---|
updateIn(path, fn) | 使用提供的函数更新深嵌套的对象 |
mergeIn(path, value) | 合并给定键路径的源对象的值与提供的值。使用 Map#mergeDeepIn |
deleteIn(path) | 递归删除当前键路径的对象。使用 Map#deleteIn |
setIn(path, value) | 设置键路径对应的值。使用 Map#setIn |
getIn(path, notSetValue?) | 获取指定键路径的值。使用 Map#getIn |
示例代码
----- ------------ - ----- ------ ------ ----- --- ----- ----- ------- ---- -- --- ----- --- ----- ----- -------- ---- -- --- --- --- ----- ------- - --------------------------- - ---------- ------- -- ------------------------ -- ------- ----- -- --- - --- ----------------- ------- - -------- - ------ ---- - -- -- --------------------- ------ -------- ------ --------- ------- - -------- - ---- - -- -- ------------------------- ------- -- ----------------------- ------------ ------- - -------- - -- - -- -- - ----- ----- - --------------------------------------- -- -------------- --- ---- ------ ------------------------ -------- -- ---
总结
immdux 提供了对不可变对象的便捷操作,让我们更容易地管理 Redux 状态树中的 Immutable 对象。在实践中,我们可以使用 immdux 来简化代码,提高代码的可读性和可维护性。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005707a81e8991b448e7e76