如何重用多个商店使用的对象?

Posted

技术标签:

【中文标题】如何重用多个商店使用的对象?【英文标题】:How do I reuse an object used by a number of stores? 【发布时间】:2015-12-01 16:11:18 【问题描述】:

我正在使用 Flux 开发一个 React Native 应用程序,该应用程序具有许多组件和许多商店。该应用程序使用一个 javascript SDK,它针对在线休息 API 进行一次身份验证。然后对返回的 SDK 对象进行身份验证,以供将来的任何调用使用。

我可以从操作或商店调用其余 API。如何针对多个商店或操作共享经过身份验证的 SDK 对象?而这两个地方哪一个最好调用API?

【问题讨论】:

【参考方案1】:

使用单例。 如果您使用 Browserify 或 Webpack 打包模块,那么制作一个封装 SDK 接口的模块导出对象应该很简单。

【讨论】:

【参考方案2】:

单例方法应该是这样,但它也应该有一些架构模式:)。实际上,创建 API 调用、身份验证等的逻辑既不应该在 action 本身中,也不应该在 store 中。

在 Flux 架构中,来自 Facebook 的人还引入了一些称为动作创建者的“辅助实用程序”——它们负责创建正确的动作并将其传递给调度程序(他们可能需要调用一些 web api 来获取行动)。此处提供了对 Flux 的这一部分的非常好的解释 - 包括视觉解释:

http://facebook.github.io/react/blog/2014/07/30/flux-actions-and-the-dispatcher.html

所以 - 总而言之 - 有一个 ActionCreator 单例来为您准备动作,并在您想要将动作发送到调度程序的地方在您的视图中使用它。

【讨论】:

以上是关于如何重用多个商店使用的对象?的主要内容,如果未能解决你的问题,请参考以下文章

在使用相似对象的多个服务中重用相似方法的最佳方法是啥?

在 Django 中重用相同的 URL 模式

从应用商店中删除旧应用时,是不是可以重用应用名称?

Flutter - 如何在多个地方重用一些代码

为多个图表重用轴对象

如何编写可重用的 Javascript?