Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.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_Node.js_Redux_Lifetime_Lifetime Scoping - Fatal编程技术网

Javascript 什么';这是包装Redux';使存储实例是瞬态的而不是单例的?

Javascript 什么';这是包装Redux';使存储实例是瞬态的而不是单例的?,javascript,node.js,redux,lifetime,lifetime-scoping,Javascript,Node.js,Redux,Lifetime,Lifetime Scoping,我还没有深入查看源代码或其他内容,只是好奇过去是否有人需要或使用过它 看起来好像Redux正在为存储创建一个单例实例,并在调用方的生命周期内保持该实例,但这对于我们正在考虑的实现来说并不成立。。。如果存在扩展API和创建具有作用域生存期的存储的最简单方法是什么 这是在纯服务器端应用程序中使用Redux的情况下(或者至少是在它能说的范围内),等等 编辑: 类似地,虽然您可以通过导入来引用存储实例 直接来说,这不是Redux中推荐的模式。如果您创建一个 存储实例并将其从模块中导出,它将成为 辛格尔顿

我还没有深入查看源代码或其他内容,只是好奇过去是否有人需要或使用过它

看起来好像Redux正在为存储创建一个单例实例,并在调用方的生命周期内保持该实例,但这对于我们正在考虑的实现来说并不成立。。。如果存在扩展API和创建具有作用域生存期的存储的最简单方法是什么

这是在纯服务器端应用程序中使用Redux的情况下(或者至少是在它能说的范围内),等等

编辑:

类似地,虽然您可以通过导入来引用存储实例 直接来说,这不是Redux中推荐的模式。如果您创建一个 存储实例并将其从模块中导出,它将成为 辛格尔顿。这意味着将更难将Redux应用程序隔离为 大型应用程序的组件(如果有必要),或 启用服务器渲染,因为要在服务器上创建 每个请求都有单独的存储实例

我在他们的文档中找到了以下摘录:


这个模块在实践中是如何工作的?如果在给定的生命周期内,我仅通过外部公开的方法访问我声明的范围内的存储,那么当范围在某个指定的应用生命周期内关闭时,我是否应该期望实例被解除分配?

您应该签出nextjs框架,尤其是
下一个redux包装器
。它在客户机上保持redux存储为单例,并在服务器上动态地为每个请求创建存储。在我看来相当酷。“看起来好像Redux正在为应用商店创建一个单例实例,并在调用方的生命周期内保持它”-不,您正在自己创建应用商店实例,然后将其提供给所有组件。“如果我只通过外部公开的方法在给定的生命周期内访问我声明的范围内的存储”-不清楚这里的“外部公开的方法”是什么意思。存储像任何其他JavaScript对象一样受到垃圾收集的影响,对它们的引用控制着它们的生命周期。