javascript - 在 flux 架构中,谁负责向服务器发送更新?

标签 javascript architecture single-responsibility-principle reactjs-flux

因此在 flux 架构中,数据流如下:

View -> Action -> Dispatcher -> Store
 ^ <-----------------------------|

假设 View 是一个评论框。当用户提交评论时,会触发 addComment 操作,但应该将该评论发送到服务器的何处?它应该发生在 Action 函数中,在调度它之前,还是应该在从调度程序接收到 Action 时存储?

这两种情况看起来都违反了单一责任模式。或者应该有两个 CommentStore,一个 LocalCommentStore 和一个 ServerCommentStore 都处理 addComment 操作?

最佳答案

在您的情况下,Action 负责向商店发送未决操作或乐观更新并向 WebAPI 发送调用:

View -> Action -> Pending Action or optimistic update  -> Dispatcher -> Store -> emitEvent -> View 
               -> WebUtils.callAPI()

onWebAPISuccess -> Dispatcher -> Store -> emitEvent -> View
onWebAPIFail -> Dispatcher -> Store -> emitEvent -> View

关于javascript - 在 flux 架构中,谁负责向服务器发送更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26816906/

相关文章:

javascript - JS如何使用父函数的参数调用函数内部的函数?

javascript - 如何使用 tbody 作为根 react 元素

architecture - 跨多个应用程序共享相同的代码库

c# - 从另一个命令 Handle() 方法中调用命令

design-patterns - 复杂过程的单一职责原则

solid-principles - "one method per class"是否过度执行了单一职责原则?

javascript - 如何在现有选择列表中显示自动完成结果

javascript - 我如何在 javascript 中使用 'cssText'?

.net - 新应用程序的数据层 : MyGeneration and/or Entity-Framework

c# - 我的功能是否违反了 SRP 或其他最佳实践?