- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
据我了解,此图已成为大多数(如果不是全部)Flux 程序员的终极指南。考虑到这个流程,我有几个问题:
$.ajax
调用都放在我的 Web API Utils 中是否正确/强烈建议?
在我的Action Creator 中包含一个逻辑(知道要调度哪个Action)是否可以?基本上,此操作接收来 self 的 AJAX 调用的响应。这是一个片段:
var TransportActions = {
receiveProxyMessage: function (message, status, xhr) {
switch (message) {
case ProxyResponses.AUTHORIZED:
AppDispatcher.dispatch({
type: ActionTypes.LOGIN_SUCCESS,
reply: m
});
break;
case ProxyResponses.UNAUTHORIZED:
AppDispatcher.dispatch({
type: ActionTypes.LOGIN_FAIL,
reply: m
});
break;
...
}
}
}
我在网上看到了很多不同的答案,但我仍然不确定如何将所有这些答案合并到我的申请中。蒂亚!
最佳答案
Is it correct/highly advisable to have all of my $.ajax calls inside my Web API Utils? Callbacks call the action creators, passing the data in the process.
是的,您应该将所有请求放入一个实体中,即 Web API Utils。他们应该发送响应,以便任何商店都可以选择对其采取行动。
我不久前写了一篇博文,展示了一种处理请求的方法 http://www.code-experience.com/async-requests-with-react-js-and-flux-revisited/
If I want my Store to make an AJAX call, I do have to call the Action Creator first, right? Is it fundamentally incorrect to call a function in Web API Utils directly from Store?
这是一个很好的问题,据我所知,每个人的做法都略有不同。 Flux(来自 Facebook)没有提供完整的答案。
这里通常有两种方法:
您可以提出这样的论点,即 Store 不应“询问”任何数据,而是简单地消化操作并通知 View 。这意味着如果商店为空,您必须在组件内触发“获取”操作。这意味着您必须检查每个数据监听 View 是否必须获取数据。如果多个 View 监听同一个 Store,这可能会导致代码重复。
从某种意义上说,商店是“智能”的,如果他们被要求提供数据,他们会检查他们是否真的有状态要交付。如果他们不这样做,他们会告诉 API Utils 获取数据并将挂起状态返回给 View 。
请注意,这个“告诉 API 获取数据”不是基于回调的操作,而是“即发即弃”操作。一旦请求返回,API 将调度操作。
与选项 1 相比,我更喜欢选项 2,而且我听 Facebook 团队的 Bill Fisher 说他们也是这样做的。 (请参阅上面博文中某处的评论)
所以不在我看来,直接从 Store 调用 Api 从根本上来说并不是错误的。
Is there like a virtual one-sided arrow connecting from Store to Action Creators?
根据您的 Flux 实现,很可能会有。
What are the Callbacks between Dispatcher and Store?
它们是唯一可以真正改变商店状态的函数!每个 Store 都会向 Dispatcher 注册一个回调。每当分派(dispatch)操作时,都会调用所有回调。每个回调决定它是否必须改变给定操作类型的商店。一些 Flux 库试图向您隐藏此实现细节。
What's the Web API here? Is this where you'd apply a RESTful API? Is there an example of this somewhere?
我认为图片中的 Web API 矩形代表实际的服务器,API Utils 是调用服务器的工具(即 $.ajax 或 superagent)。它很可能是一个提供 JSON 的 RESTful API。
一般建议:
Flux 是一个相当松散的概念,具体的实现因团队而异。我注意到 Facebook 也随着时间的推移改变了一些方法。确切的周期没有严格定义。虽然有一些非常“固定”的东西:
其他的事情在不同的实现中都是不同的
关于javascript - Flux 最佳实践 : Stores dispatching actions, Web API Utils 中的 AJAX 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29986108/
当包裹在 EmberJS Controller 的 actions 中时,如何从另一个 Action 调用一个 Action ? 使用现已弃用的方式定义操作的原始代码: //app.js App.In
我有一个 Action (一个yaml文件),用于将docker镜像部署到Google Cloud Run。 我希望收到通知构建和推送结果的Slack或电子邮件。 构建操作完成后,如何触发消息操作?
Selenium 的 actions 类中存在的 tick(Action action) 和 tick(Interaction...actions) 方法的用途是什么? 是否与点击任何 webElem
简短的背景故事 我们目前为数百名用户提供对话操作。我们在过去三年中为我们的一位客户开发了这个 Action 作为“工作”。正如我们最近发现的那样,我们会受到对话行为的影响。 当然,我们现在正在研究如何
考虑系统用户可以并发方式执行两个操作,第一个操作 (A1) 仅对用户的订单执行,第二个操作 (A2) 包括在执行时执行 (A1),如下面的使用所述-案例图..((考虑A1完全执行U1,A2完全执行U2
我正在为 android 中的 ActionBar 而苦苦挣扎。 这是我的问题:我的操作项没有显示在操作栏中,而是堆叠在操作溢出中,无论我做什么.. 我花了一天的时间寻找解决方案,但我似乎找不到缺少的
我正在构建一个工作流,其中一个操作为工作流中的一个步骤提供条件。我该如何使用这个值? 该操作的值为空,因此计算结果为 false,并且从未部署过任何内容... jobs: build: s
鉴于您有一些全局 View (例如,显示加载屏幕),您可能希望在许多情况下发生这种情况,为该行为创建一个 Action 创建者/ Action 对还是为相关 Action 创建 reducer 更合适
我有一个使用 DialogFlow 构建的 Actions on Google 代理,其中包含多个操作(例如 actions.intent.MAIN 和 get_day_of_week)。 当我在 3
是否可以从我的 action.yml 文件中引用另一个 GitHub 操作? 请注意,我在这里谈论的是操作,而不是工作流程。我知道这可以通过工作流来完成,但是操作可以引用其他操作吗? 最佳答案 答案似
在 Vuex 操作中,我们有以下实现。 async actionA({ commit, dispatch }) { const data = this.$axios.$get(`/apiUrl`)
我正在将我的应用程序服务器从 Jboss 4.2 迁移到 7.1。我在 Struts 配置中收到以下错误。 struts.xml 中定义的 Action 被调用,而 Action 包中的操作未被调用。
我向 ActLand 发送请求,然后 intercept(),如果没有登录则重定向到 Login.jsp。 struts.xml:
我有一个 Action 创建器,它接受一个 id 和一个回调函数。它向服务器发送请求以执行某些操作并返回一个虚拟操作。我在这里想做的就是调用回调函数并退出,因为该虚拟操作对我来说没有用处,例如喜欢帖子
我已经使用 Html.Action 方法调用了另一个 View 。当用户单击操作链接时,我想在 subview 内使用参数调用相同的操作。 当我写这段代码时,我得到了这个错误信息: Html.Acti
是 public event Action delt = () => { Console.WriteLine("Information"); }; 的重载版本 Action delg = (a, b)
countresultsfrom.addActionListener(new ActionListener() { public void actionPerforme
我刚刚看到一个 brand-new video在 Rx 框架上,一个特别的签名引起了我的注意: Scheduler.schedule(this IScheduler, Action) 在 23:55,
我创建了一个在我的开发者帐户中完美运行的 DialogFlow 应用程序。 但我需要以另一个用户的身份对其进行测试,因此在我的 Google Action 模拟器中,我添加了另一个测试帐户作为项目的所
我正在尝试实现消息存储拦截器以在我的 JSp 上显示 ActionMessage,但无法访问 ActionMessage。有人可以提供一个链接如何实现消息存储拦截器吗? 最佳答案 这是我的一个应用程序
我是一名优秀的程序员,十分优秀!