问题标签 [reactjs-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 投票
2 回答
768 浏览

reactjs - react.js 中合适的动作类型是什么?

在 Flux 示例中,我注意到的两种操作类型是视图操作和服务器操作。从大型应用程序的角度来看,是否还有其他需要关注的操作类型?我只是在考虑长期使用的适当模式。

https://github.com/facebook/flux/tree/master/examples

0 投票
1 回答
306 浏览

single-page-application - 如何使用助焊剂商店

Flux 的大多数示例都使用待办事项或聊天示例。在所有这些示例中,您存储的数据集有点小并且保存在本地,因此不确定我计划使用的商店是否符合通量“方式”。

我打算使用商店的方式有点像 ORM 存储库。一种以多种方式访问​​数据并将数据持久保存到数据服务的方法,无论它可能是什么。

假设我正在构建一个项目管理系统。我可能会有这样的数据检索方法:

  • getIssueById
  • 按项目获取问题
  • getIssuesByAssignedUser
  • 获取问题评论
  • getIssueCommentById
  • ETC...

我也会有这样的方法来将数据持久化到数据服务:

  • 添加问题
  • 更新问题
  • 删除问题
  • 添加问题评论
  • ETC...

我不会做的一件主要事情是在本地存储任何问题数据(就此而言,大多数存储与数据存储相关的数据)。大多数数据对于保持新鲜很重要,因为自从我上次检索该问题以来,问题状态可能已经更新。我所有的数据检索方法可能总是向最新数据发出 API 请求。

这是反对通量“方式”吗?以这种方式处理通量有什么问题吗?

0 投票
2 回答
606 浏览

api - 没有数据缓存的通量?

几乎所有通量的例子都涉及客户端的数据缓存,但是我认为我无法为我的很多应用程序做到这一点。

在我正在考虑使用 React/Flux 的系统中,单个用户可以拥有我们存储的数千条主要数据(一条记录可能至少有 75 个数据属性)。在客户端缓存这么多数据似乎是个坏主意,并且可能会使事情变得更加复杂。

如果我不使用 Flux,我只会有一个类似 ORM 的系统,它可以与 REST API 对话,在这种情况下userRepository.getById(123),无论我是否在最后一页中请求了该数据,类似的请求总是会命中 API。我的想法是让商店有这些方法。

Flux 是否认为如果我要请求数据,它总是访问 API 并且从不从本地缓存实例中提取数据是不好的?如果大多数数据检索请求总是会遇到 API,我可以使用 Flux 吗?

0 投票
1 回答
286 浏览

javascript - 为什么这个反应组件按钮 onClick 不会触发的任何想法

我有以下组件:

出于某种原因,_handleButtonClick 事件根本没有触发,我尝试了各种包含按钮的方法,但由于某种原因,这个按钮只是不想触发它的事件。我可以在 Flux TodoMVC 示例应用程序中看到类似的示例https://github.com/facebook/flux/blob/master/examples/flux-todomvc/js/components/Footer.react.js#L48工作,但由于某种原因,上面的代码,点击事件没有附加到按钮上。

有任何想法吗?

0 投票
2 回答
574 浏览

reactjs - 通量 + 数据生命周期

在 FLUX 应用程序中,通过诸如初始化之类的操作将给定的数据集填充到存储中。如果出现以下情况怎么办:

  1. 商店应该增量初始化。(一次添加一个用户)。
  2. 如果用户已经在商店中,除非已经有一段时间,否则不要再次获取用户。

在不同的动作创建者中发出 HTTP 请求似乎最终会收到比您想要的更多的请求。您需要两级缓存吗?一个在动作 HTTP API 层(动作创建者)和一个在商店?这似乎不是多余的吗?

0 投票
4 回答
37421 浏览

javascript - 使用 react 发送和处理全局事件

我正在玩一些反应来构建“添加到购物车按钮”。这是我的代码。

我很好奇的是这个 ajax 处理程序。我很确定反应的重点是组件之间的互操作性,但我不知道将这些事件引向何处。我可以想象几个不同的组件,例如成功时的购物车计数指示器或失败时的错误警报,但我不完全知道如何利用这些组件。这就是flux调度员的重点吗?

0 投票
2 回答
2842 浏览

reactjs - 在回流中,我如何从 asp.net web api 获取数据

我正在使用reactjs的回流。从 Store 的回流操作中,我编写了一个从 asp.net web api 获取数据的操作,我认为这是获取用于 ajax 的数据的唯一方法,有人跟我说,我可以使用插件 jquery 获取数据,但我没有'不要相信它,因为 $.ajax 是最好的方法。我在谷歌上搜索所有内容,但我看不到解决这个问题。如果您知道要解决的问题,请与我分享,我真的很感谢。

此外,我对 ajax 的全局和局部变量有疑问。请查看我的代码,您可以看到从不返回值的粗体文本,与成功块有关的问题,列表变量在块外时不会更新。那有什么问题?我该如何解决这个错误?

再一次非常感谢你!

0 投票
0 回答
451 浏览

facebook - Facebook Flux: Store with multiple change events (or Flux without React)

In Flux pattern, is it ok for a store to declare multiple events for a view to listen to? E.g. listChanged, selectedListItemChanged, etc. At first glance it seems legit to me (either this or passing additional parameter in a change event) as it doesn't break the flow and just adds few down arrows from store to view.

I've ommited "React" on purpose, because I'm looking for a generic pattern, not bound to concrete rendering library. And having one stateChanged event makes rendering process very complex without ReactJs magic.

0 投票
1 回答
2468 浏览

reactjs - 在 React 组件中设置初始状态以进行渐进式增强和 Flux 架构

我已经阅读了http://scotch.io/tutorials/javascript/build-a-real-time-twitter-stream-with-node-and-react-js,它描述了一种接管服务器渲染的 React 组件的技术无缝地:

服务器渲染到车把中的 {{{markup}}},并传递初始状态。

然后在客户端javascript

但是在通量架构中,例如本文http://scotch.io/tutorials/javascript/creating-a-simple-shopping-cart-with-react-js-and-flux中所述,状态在 getInitialState 中初始化生命周期方法:

从渐进增强的角度来看,哪一种是设置状态的正确方法?

0 投票
2 回答
5297 浏览

modal-dialog - 在 React Flux 中实现模式和通知的最佳方式

模态和通知是附加到正文的组件。因此它们的工作方式与普通组件几乎没有什么不同。在我的应用程序中,我可以想到两种实现它们的方法,但我不确定哪一种更好。

  1. 没有商店

在这种方法中,我创建了一个具有 create 方法的 NotificationHelper 类。在其中,我创建了一个新的容器节点,将其附加到主体,然后调用 React.render(, container);

所以任何组件都可以调用 NotificationHelper.create() 并且它会创建一个通知。管理其生命周期并在计时器到期或有人单击关闭按钮时关闭的通知组件。

问题经常是,我需要在页面上显示通知以响应 XHR 响应(成功或失败),所以在我的 actionCreator 中,我会有这样的代码

我不知道从呈现新组件的动作创建者中调用这样的东西是否正确。

  1. 有店铺

另一种方法是创建 NotificationStore 并在 emitChange 上呈现通知组件。代码看起来像这样

在我的 App.js 中,代码将是

然后在 NotificationContainer 中,我会做类似的事情

最后,动作创建者看起来像

这种方法的问题是商店的额外开销。商店在这里没有做任何有意义的事情,它只是为了跟随潮流。从动作创建者,我们将数据传递给存储,组件再次从存储中获取相同的数据并渲染它。因此,我们完成了通量周期,却没有真正从中得到任何东西。

此外,我现在需要在我的应用程序开始时初始化 NotificationContainer,即使此时我没有任何通知。