问题标签 [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.
facebook - 在 FLUX 模式中,数据的更新和检索是如何以及在哪里发生的?
我一直在思考这个问题,但未能找到有关后续 api (ajax) 请求主题的任何信息。
假设我们有用户列表,其中一个已更新。更新用户后,我想检索整个更新的用户列表。
我的问题涉及两个动作:
- 更新用户
- 检索所有用户
我很清楚,React 组件启动视图操作以更新用户,从而通过调度程序产生 API 请求。我不清楚的是第二个检索用户的请求发生在哪里。
查看Facebook 的聊天示例...
- 它是否发生在 Web API 实用程序中?
- 商店在收到更新通知后会这样做吗?
- 组件在收到更改通知后是否执行此操作?
目前我会在 API 中执行此操作,但我想知道是否有任何经过测试的模式可以解决此问题。
javascript - 聆听商店外的 Reflux 行动
我试图弄清楚如何将 ajax 调用融入到通量/回流的做事方式中。从我在网上找到的一些信息来看,将 API 逻辑与商店分开似乎是正确的。
从那里开始,我创建了一个向服务器发出请求的客户端 API。现在,我希望这些函数能够监听我的操作,然后发出请求,并在成功触发其他操作后使用来自服务器的新数据更新商店。
如何为我的 API 提供类似于回流 createStore 方法的东西?或者,我的服务器调用是否有其他干净的方式来监听操作?
reactjs - 我可以从节点传递数据以做出反应吗?
在节点中(使用 ejs)我通常可以去:
这仍然有可能做出反应吗?我不想为我的所有数据进行客户端加载(通过 .ajax),而是加载一些初始数据并将其传递给反应(或通量)。我还没有找到这方面的任何例子。
reactjs - 将 CSRF 令牌从节点传递给 REACT/FLUX
我正在使用 nodejs 并且通常传递 csrf 令牌,如下所示:
实用程序.js
应用程序.js
然后在ejs页面中我会做
但是,现在我在前端使用flux/react,需要传递一个csrf令牌来提交表单,但不确定如何执行此操作。这里有一个使用玉的类似答案:
如何使用 express.js 在 Ajax 调用中实现 CSRF 保护(寻找完整示例)?
但是,我正在使用 ejs(带有 jsx)(或只是 html)并且不想使用玉
reactjs - Jest AutoMocking 在测试 React 组件时是否有效?
我有限数量的测试似乎表明答案是否定的。我正在为依赖于商店的父级 React 组件(又名控制器视图)编写单元测试。然而,Jest 并没有像文档建议的那样为商店提供自动模拟,而是调用真正的实现。
这是一个错误还是设计使然?如果是后者,那么单元测试反应组件是否不可取?
编辑 1
在测试 CommonJs 模块时,Automocking 工作得很好;它只是不适用于反应组件。
reactjs - 灵活的 storeListeners 事件发射器
有没有办法发现哪个处理程序触发了事件?
例如,我的商店:
当最后一个函数触发时,我的听众:
我想知道哪个函数触发了事件
javascript - 行动应该和店铺商谈吗?
我正在使用对通量架构做出反应,但我遇到了一个问题。
我需要创建一个获取用户 ID 并获取用户的操作。这是代码:
我想使用一个将缓存所有用户的存储,因此如果用户之前获取,该操作将不会执行后端调用。新操作应如下所示:
问题是我不想在操作中管理用户数据,所以我想到实现 getFetchedUser() 的唯一方法是检查用户存储。
这是一个好方法吗?
可以操作访问存储吗?
reactjs - 通量操作可以访问存储吗?
Flux 操作可以访问存储吗?我最近收到了一个代码审查评论,要求我从 React 组件中传递一个特定的值,而不是直接在 action 中从 store 中获取它。这将改变 Flux 的数据流:
对此
在我看来,因为所有数据更改仍在通过调度程序,数据流仍然按照预期的方向进行,更新仍然是原子的,并且流程仍然很容易推理。能有什么缺点吗?
javascript - RefluxJS 商店可以在调用 trigger() 时指示哪些属性已更改?
作为一个整体,我是 Flux 的新手,但我试图从 Reflux 开始掌握它,这似乎更固执己见,更容易学习。
据我了解,Reflux 商店有一种trigger
方法可以指示商店的数据已更改,并将更新的数据传递给它。然后可以使用Reflux.connect mixin 或类似方法将此数据设置为 React 组件的状态(或状态的属性之一)。
但是,如果一个商店有多组数据需要分别收听呢?假设我正在修改 TodoMVC RefluxJS 示例,并且我希望 TodoStore 还包含一个title
属性,该属性指示待办事项列表(以及待办事项列表list
)的名称。假设还有一个<Title>
组件正在侦听属性的更改,并在它发生时将其title
设置为状态。title
调用this.trigger(title)
将更新标题组件,但也会导致待办事项组件尝试使用标题字符串作为其状态,因此我们需要一种方法来指示哪些数据已更改。是否应该将这两个属性 (title
和list
) 分开到不同的商店中?或者所有调用都应该trigger
包含一个指示属性的字符串:this.trigger("title", this.title)
或this.trigger("todos", this.list)
. 还是应该将所有数据组合成一个对象,然后由听众选择(例如使用Reflux.connectFilter
)?
最后两个示例将新数据引入this.trigger()
调用,这意味着Reflux.connect
不能再使用,因为connect
获取从存储返回的数据并直接将组件状态设置为它。这是否意味着我们必须使用Reflux.listenTo(TodoStore,"onTodoChange")
,然后过滤掉与trigger
该组件无关的调用?
javascript - 如何处理 React / Flux 组件中的状态转换
鉴于我有一个基于 AJAX 的搜索字段,它对用户输入做出反应,通过 AJAX 从后端请求搜索结果,在搜索字段下方的下拉列表中显示结果,允许通过光标键导航搜索结果并对按键做出esc
反应智能方式。
由于当前基于 Backbone 的组件在很多方面都被破坏了,所以我想重新实现该搜索组件,使用React
可能还有Flux
架构。
在规划过程中,我的组件至少有 10 种不同的状态(甚至更多),它必须对actions
用户输入actions
触发以及异步服务器响应触发做出反应。
问题store
1:我应该在 a而不是父组件中建模所有状态吗?这意味着,每个用户输入都会更改存储状态,例如:searchQuery
,:searchResults
而我的父视图组件会对该状态更改做出反应?
问题2 :或者我应该对父组件本身的所有状态进行建模并完全省略 astore
和?dispatcher
actions
问题3 :独立于处理状态store
或父组件本身,事实证明,组件本身至少可以有10种不同的状态,并且应该只允许一定数量的转换。通常,我会在这里引入一个状态机实现,对所有模型:states
进行建模,:transitions
并在每次接收到一个动作store
或在父组件中调用回调方法时执行转换。在组件中处理这些以及在这些之间的正确React way
处理是什么?states
transitions
states
问题4:哪个是最先进Flux
的 Javascript 实现?到目前为止我已经看到了反流,但我不确定,那是我的毒药。
我对这里的各种建议持开放态度。