简介
redux-storage-merger-simple 是一款 Redux 存储中间件,用于合并来自多个源的数据。该中间件通过 reducer 的形式实现了数据的合并,而不用在实际编写 reducer 时进行合并操作,使得我们可以更加专注于业务逻辑的实现。
安装
在项目中安装 redux-storage-merger-simple:
npm install redux-storage-merger-simple --save
使用
使用 redux-storage-merger-simple 可以非常简单,只需要在 createStore 函数中包装 reducer 即可。
-- -------------------- ---- ------- ------ - ------------ ---------------- --------------- - ---- -------- ------ ------------ ---- ------------------------------------ ------ ------ ---- --------------------------------- ------ ------ ---- ------------------------------ ------ - ---------- -- ------------------ ------- -- -------------- - ---- ---------------- -- ----------- ------------ ----- ------ - -------------------------------- ---------- -- ----- ----- ------------- - -------- ---- ----------- ------ -------- -------- --- -- - --------------- --- --------------------- ------------- -- ------- ----- ----- - ------------ ----------------- ----- -------------- --- ------------------------------------------- -------------- --
在上面的示例中:
path
参数是需要合并的数据在 state 中的路径,可以是用字符串表示,也可以是字符串数组。- 该示例中合并了
user
和cart
这两个 state,合并后存储到 localStorage 中。
深度和学习意义
redux-storage-merger-simple
为我们提供了一个可以在实际业务场景中广泛使用的 reducer 合并解决方案。在实际使用过程中,我们往往需要在多个数据源中获取数据,然后进行合并,存储到 state 中,在代码编写时,需要显式的编写数据合并的逻辑,这样会导致代码的复杂度较高。redux-storage-merger-simple
解决了这个问题,通过封装 reducer 来实现数据合并的逻辑。
在实际开发中,简化代码逻辑,使得它更加的清晰简洁,这是一个十分重要的思想。redux-storage-merger-simple
解决的问题不仅仅是在 reducer 上的,它的思想也可以应用到其他的地方。当我们把重点放在业务逻辑上时,希望能有更多的这种解决方案,来帮助我们简化代码逻辑,减少维护成本。
示例代码
-- -------------------- ---- ------- ------ ----- ---- -------- ------ - ------- - ---- -------------- ------ ------ ---- ------------------------------ ----- ---- ------- --------------- - ------ --------- - - ----- ------------------------------------ -- -------- - ----- - ---- - - ----------- ------ - ---- -------------- -- - --- -------------- ------------ - ------------ ----- --- ----- -- - - ----- --------------- - ----- -- -- ----- ----------- --- ------ ------- ------------------------------------- -------- ---- ----------- ------ -------- ----
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006700ae361a36e0bce8c3a