这是我应该使用Redux的方式,除非我直到一个月前才使用

我对redux的介绍不是那么愉快。 它并没有立即为我点击。 可能有很多原因,其中主要是学习曲线,并加上进入壁垒和样板。 redux中使用的概念并不是真正独特或全新的,它们源自磁通架构,但是由于我对任何基于磁通的系统都没有经验,因此并没有太大的意义。 还需要提及进入障碍,显然仅靠redux本身不足以处理所有任务,特别是异步操作。 您将需要使用redux-thunks(https://github.com/reduxjs/redux-thunk),redux-saga(https://github.com/redux-saga/redux-saga)或redux-observable(https ://redux-observable.js.org/)执行异步任务。 有很多地方似乎很烦人,特别是从初学者的角度来看:

  1. Redux开发工具无法立即使用 (Vuex做到最好)
  2. 太多样板只是为了设置带有sagas / epics / thunks的商店,而我在设置时就不会一开始就正确无误
  3. 没有确定的体系结构指南 。 最初,将动作,减速器,sagas分组到各自的文件夹中似乎很合理,但是它确实开始变得混乱了。 因此,按“域”或“模块”对文件进行分组似乎更为合理。
  4. 最后的免疫力 ! 等等,还不要判断我。 我知道这很关键,但不应该在后台进行处理。 由于不可变性的限制,简单的更改变得太冗长,更不用说更新状态中深层嵌套的键了。 (再次,Vuex和Mobx处理起来更好)

如果我不太喜欢redux,建议我改用mobx。 但是实际上并非如此。 我喜欢redux所提供的。 我喜欢reducer-action范例,并且有很多用例在很大程度上简化了任务,但是为什么我必须处理重复的设置步骤,为什么我需要写一些可以在后台处理的内容?

我浏览了可用的解决方案,并尝试了一些选项,其中一些是:

  1. https://github.com/davezuko/react-redux-starter-kit ,消除了设置redux(和其他工具)的麻烦,但没有什么可提供的
  2. https://github.com/infinitered/reduxsauce ,提供了辅助功能,可以更快地完成工作。 它解决了一些样板问题,但同时也增加了一些学习曲线。
  3. https://github.com/erikras/ducks-modular-redux ,我真的很喜欢这种架构,并经历了它的一些实现。 但是就样板而言,它实际上并没有提供太多帮助。
  4. https://github.com/anish000kumar/redux-box ,这就是我想要的。 模块化体系结构随redux和redux-saga一起提供(因此不需要安装其他组件),可以处理底层的不变性,提供快速的商店设置,具有一些方便的辅助功能,而无需太多学习,这很有意义。 似乎还非常积极地维护了它,对于处理此问题的所有存储库而言,情况并非如此。

因此,我已经将一个用于生产应用程序的redux-box应用于模块化体系结构,已经有一个多月半的时间了,到目前为止,它的运行情况非常好。 鸭子约定引入的原理很棒,在此基础上添加Redux-Box,您将获得一个很棒的解决方案,以构建可扩展的react,react-native应用程序,并提供更好的开发经验。 如果您尝试过使用redux-ducks和/或redux-box,我很想听听您对此的反馈意见。 另外,如果您找到了解决这些问题的其他方法,请也分享一下。