Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我应该选择哪个redux中间件?_Javascript_Reactjs_Redux_React Redux - Fatal编程技术网

Javascript 我应该选择哪个redux中间件?

Javascript 我应该选择哪个redux中间件?,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,按照指南,我来到了redux应用程序的各种中间件 , 这只是我们选择哪个中间件的偏好问题。但我不是要求选择一个惯例 我想知道它们之间是否有任何差异,比如性能、浏览器支持、用例等,或者我缺少的其他东西。我努力研究这些,但没有找到任何文章 >我可以考虑为我的应用程序选择一个中间件。如果我知道不同中间件的特定用例,那么选择中间件对我来说也是非常好的 或者,所有的中间件都只是约定,我可以为任何类型的redux应用程序(小型或大型)选择其中任何一种?根据我的个人经验(我使用了您列出的大多数中间件) Re

按照指南,我来到了redux应用程序的各种中间件

,

这只是我们选择哪个中间件的偏好问题。但我不是要求选择一个惯例

我想知道它们之间是否有任何差异,比如性能、浏览器支持、用例等,或者我缺少的其他东西。我努力研究这些,但没有找到任何文章

<> >我可以考虑为我的应用程序选择一个中间件。如果我知道不同中间件的特定用例,那么选择中间件对我来说也是非常好的


或者,所有的中间件都只是约定,我可以为任何类型的redux应用程序(小型或大型)选择其中任何一种?根据我的个人经验(我使用了您列出的大多数中间件)

Redux传奇是一条路要走。它有一个更高的学习曲线,但一旦你把你的头绕在它周围,它就会变得非常强大

重演传奇

  • 允许分离关注点
  • 减少副作用
  • 可取消任务(惊人)
  • 并行(类)处理
  • 一旦您了解了redux传奇,扩展应用程序就变得容易多了

    我们必须考虑是构建小型还是大型应用程序。还可以考虑可用性、代码标准和JavaScript知识。它们都是相似的

    redux-thunk​

    Redux Thunk中间件允许您编写返回函数而不是操作的操作创建者。thunk可用于延迟动作的调度,或仅在满足特定条件时才进行调度。它将dispatch和getState方法合并为参数

    ​雷杜传奇​

    redux saga是一个库,旨在以可管理和高效的方式执行应用程序的副作用(即异步数据获取和不纯净的过程,如访问浏览器缓存)。测试起来很简单,因为它使用了称为Generator的ES6特性,使得流作为同步代码很容易读取

    可观察到的重复次数

    redux observable是受redux thunk启发的redux中间件。它允许开发人员分派一个函数,该函数返回一个可观察的、承诺的或可执行的动作。当可观测对象发出一个动作,或承诺解决一个动作,或可观测对象发出一个动作时,该动作就会像往常一样被调度

    以及其他直接从github来源获得的信息:

    重复承诺

    中间件向调用者返回一个承诺,以便在继续之前可以等待操作完成。这对于服务器端渲染特别有用

    redux承诺中间件

    Redux承诺中间件支持在Redux中健壮地处理异步操作创建者:它接受承诺并分派挂起、完成和拒绝的操作。 中间件还可以与Redux Thunk结合,以链接动作创建者

    redux pack

    redux pack是一个库,它引入了基于承诺的中间件,允许基于承诺生命周期的异步操作是声明性的

    redux中的异步操作通常使用redux thunk或其他中间件完成。这种方法的问题在于,它太容易顺序地使用分派,并且分派多个“动作”作为同一交互/事件的结果,而这些动作可能只是一个动作分派

    这可能会有问题,因为我们将多个调度视为单个事务的一部分,但实际上,每个调度都会导致整个组件树的一个单独的重新加载,这不仅会造成巨大的性能损失,而且还会使redux存储处于不一致状态的风险

    redux pack有助于防止我们犯这些错误,因为它没有给我们分派功能的功能,但允许我们完成以前所做的所有事情