问题标签 [flux]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
184 浏览

facebook - 在 FLUX 模式中,数据的更新和检索是如何以及在哪里发生的?

我一直在思考这个问题,但未能找到有关后续 api (ajax) 请求主题的任何信息。

假设我们有用户列表,其中一个已更新。更新用户后,我想检索整个更新的用户列表。

我的问题涉及两个动作:

  1. 更新用户
  2. 检索所有用户

我很清楚,React 组件启动视图操作以更新用户,从而通过调度程序产生 API 请求。我不清楚的是第二个检索用户的请求发生在哪里。

查看Facebook 的聊天示例...

  • 它是否发生在 Web API 实用程序中?
  • 商店在收到更新通知后会这样做吗?
  • 组件在收到更改通知后是否执行此操作?

目前我会在 API 中执行此操作,但我想知道是否有任何经过测试的模式可以解决此问题。

0 投票
2 回答
2188 浏览

javascript - 聆听商店外的 Reflux 行动

我试图弄清楚如何将 ajax 调用融入到通量/回流的做事方式中。从我在网上找到的一些信息来看,将 API 逻辑与商店分开似乎是正确的。

从那里开始,我创建了一个向服务器发出请求的客户端 API。现在,我希望这些函数能够监听我的操作,然后发出请求,并在成功触发其他操作后使用来自服务器的新数据更新商店。

如何为我的 API 提供类似于回流 createStore 方法的东西?或者,我的服务器调用是否有其他干净的方式来监听操作?

0 投票
1 回答
1331 浏览

reactjs - 我可以从节点传递数据以做出反应吗?

在节点中(使用 ejs)我通常可以去:

这仍然有可能做出反应吗?我不想为我的所有数据进行客户端加载(通过 .ajax),而是加载一些初始数据并将其传递给反应(或通量)。我还没有找到这方面的任何例子。

0 投票
2 回答
9373 浏览

reactjs - 将 CSRF 令牌从节点传递给 REACT/FLUX

我正在使用 nodejs 并且通常传递 csrf 令牌,如下所示:

实用程序.js

应用程序.js

然后在ejs页面中我会做

但是,现在我在前端使用flux/react,需要传递一个csrf令牌来提交表单,但不确定如何执行此操作。这里有一个使用玉的类似答案:

如何使用 express.js 在 Ajax 调用中实现 CSRF 保护(寻找完整示例)?

但是,我正在使用 ejs(带有 jsx)(或只是 html)并且不想使用玉

0 投票
1 回答
1199 浏览

reactjs - Jest AutoMocking 在测试 React 组件时是否有效?

我有限数量的测试似乎表明答案是否定的。我正在为依赖于商店的父级 React 组件(又名控制器视图)编写单元测试。然而,Jest 并没有像文档建议的那样为商店提供自动模拟,而是调用真正的实现。

这是一个错误还是设计使然?如果是后者,那么单元测试反应组件是否不可取?

编辑 1

在测试 CommonJs 模块时,Automocking 工作得很好;它只是不适用于反应组件。

0 投票
1 回答
407 浏览

reactjs - 灵活的 storeListeners 事件发射器

有没有办法发现哪个处理程序触发了事件?

例如,我的商店:

当最后一个函数触发时,我的听众:

我想知道哪个函数触发了事件

0 投票
2 回答
149 浏览

javascript - 行动应该和店铺商谈吗?

我正在使用对通量架构做出反应,但我遇到了一个问题。
我需要创建一个获取用户 ID 并获取用户的操作。这是代码:

我想使用一个将缓存所有用户的存储,因此如果用户之前获取,该操作将不会执行后端调用。新操作应如下所示:

问题是我不想在操作中管理用户数据,所以我想到实现 getFetchedUser() 的唯一方法是检查用户存储。
这是一个好方法吗?
可以操作访问存储吗?

0 投票
1 回答
1015 浏览

reactjs - 通量操作可以访问存储吗?

Flux 操作可以访问存储吗?我最近收到了一个代码审查评论,要求我从 React 组件中传递一个特定的值,而不是直接在 action 中从 store 中获取它。这将改变 Flux 的数据流:

对此

在我看来,因为所有数据更改仍在通过调度程序,数据流仍然按照预期的方向进行,更新仍然是原子的,并且流程仍然很容易推理。能有什么缺点吗?

0 投票
1 回答
804 浏览

javascript - RefluxJS 商店可以在调用 trigger() 时指示哪些属性已更改?

作为一个整体,我是 Flux 的新手,但我试图从 Reflux 开始掌握它,这似乎更固执己见,更容易学习。

据我了解,Reflux 商店有一种trigger方法可以指示商店的数据已更改,并将更新的数据传递给它。然后可以使用Reflux.connect mixin 或类似方法将此数据设置为 React 组件的状态(或状态的属性之一)。

但是,如果一个商店有多组数据需要分别收听呢?假设我正在修改 TodoMVC RefluxJS 示例,并且我希望 TodoStore 还包含一个title属性,该属性指示待办事项列表(以及待办事项列表list)的名称。假设还有一个<Title>组件正在侦听属性的更改,并在它发生时将其title设置为状态。title

调用this.trigger(title)将更新标题组件,但也会导致待办事项组件尝试使用标题字符串作为其状态,因此我们需要一种方法来指示哪些数据已更改。是否应该将这两个属性 (titlelist) 分开到不同的商店中?或者所有调用都应该trigger包含一个指示属性的字符串:this.trigger("title", this.title)this.trigger("todos", this.list). 还是应该将所有数据组合成一个对象,然后由听众选择(例如使用Reflux.connectFilter)?

最后两个示例将新数据引入this.trigger()调用,这意味着Reflux.connect不能再使用,因为connect获取从存储返回的数据并直接将组件状态设置为它。这是否意味着我们必须使用Reflux.listenTo(TodoStore,"onTodoChange"),然后过滤掉与trigger该组件无关的调用?

0 投票
1 回答
1480 浏览

javascript - 如何处理 React / Flux 组件中的状态转换

鉴于我有一个基于 AJAX 的搜索字段,它对用户输入做出反应,通过 AJAX 从后端请求搜索结果,在搜索字段下方的下拉列表中显示结果,允许通过光标键导航搜索结果并对按键做出esc反应智能方式。

由于当前基于 Backbone 的组件在很多方面都被破坏了,所以我想重新实现该搜索组件,使用React可能还有Flux架构。

在规划过程中,我的组件至少有 10 种不同的状态(甚至更多),它必须对actions用户输入actions触发以及异步服务器响应触发做出反应。

问题store1:我应该在 a而不是父组件中建模所有状态吗?这意味着,每个用户输入都会更改存储状态,例如:searchQuery:searchResults而我的父视图组件会对该状态更改做出反应?

问题2 :或者我应该对父组件本身的所有状态进行建模并完全省略 astore和?dispatcheractions

问题3 :独立于处理状态store或父组件本身,事实证明,组件本身至少可以有10种不同的状态,并且应该只允许一定数量的转换。通常,我会在这里引入一个状态机实现,对所有模型:states进行建模,:transitions并在每次接收到一个动作store或在父组件中调用回调方法时执行转换。在组件中处理这些以及在这些之间的正确React way处理是什么?statestransitionsstates

问题4:哪个是最先进Flux的 Javascript 实现?到目前为止我已经看到了反流,但我不确定,那是我的毒药。

我对这里的各种建议持开放态度。