标签: flux

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

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

res.render('home', {
        data: someData
});
Run Code Online (Sandbox Code Playgroud)

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

flux reactjs reactjs-flux

5
推荐指数
1
解决办法
1329
查看次数

如何更新 React 组件的数组?

我发现当数组中的元素发生更改时, React不会更新组件。相反,必须克隆一个新数组并将其放置在其位置。

例如,我有一个_suggestedPeople. 当单击代表这些人之一的 UI 元素时,我想通过调用 来注册它selectPerson

我希望 React 在执行此操作后能够更新:

selectPerson: function(personID, selected) {
    var person = _.find(_suggestedPeople, {id: personID});
    if (person) {
      person.selected = selected; 
    }
    return person;
  },
Run Code Online (Sandbox Code Playgroud)

然而,我最终还是这样做了,这似乎没有必要:

selectPerson: function(personID, selected) {
    var index = _.findIndex(_suggestedPeople, {id: personID});
    var found = index !== -1;
    if (found) {
      var people = _.cloneDeep(_suggestedPeople);
      people[index].selected = selected;
      _suggestedPeople = people; 
    }
    return found;
  },
Run Code Online (Sandbox Code Playgroud)

后者是更新 React 组件数组数据的正确方法吗?或者我错过了什么?

javascript arrays flux reactjs reactjs-flux

5
推荐指数
1
解决办法
9194
查看次数

反应 - 身份验证过程:无法在分派过程中分派

我已经开始通过flummox、react-bootstrap和react-router玩react。我正在尝试为我的网站创建一个基本的同构 CMS。

语境 :

在身份验证方面,每个用户都有一个功能列表,每个组件都使用我的身份验证存储“可以”显示或不显示的方法等......

我在顶部有一个用户导航栏,在 reat-router 处理的每个页面上都可见,带有一个登录/退出按钮,如果用户未登录,则基本上会在单击带有登录表单的模态时显示,否则会显示注销确认。

当用户登录时,我希望更新当前显示的页面上的组件(注销相同)。

这是一个页面示例,该页面显示一个列表,该列表只能由具有适当权限的经过身份验证的用户查看:

过程 :

  1. 当用户提交表单时,我调用一个动作
  2. 动作向服务器发送请求
  3. 该操作由更新其 currentUser 的身份验证存储注册
  4. 该组件有一个 currentUser 属性,并使用 componentWillReceiveProps 来检查这个属性是否改变并调用一个动作来请求列表
  5. 该操作由更新其项目的商店注册

问题:无法在调度过程中调度

Hack :第二个动作放在 setTimeout 中

问题: 我阅读了很多关于这个特定问题的答案,据说在同一个调度程序周期内调用两个操作是糟糕的设计。所以我的问题是:有没有更好的方法来设计这个过程?

PS:如有必要,我可以发布一些代码。

flux reactjs react-bootstrap react-router flummox

5
推荐指数
0
解决办法
323
查看次数

从后端角度看 PHP 中的 Flux 架构

严格从后端角度来看,如何实现 Flux 架构?需要明确的是,MVC 设计模式实际上很清楚如何安排文件,框架有自己的实现,但仍然清楚如何安排和组织项目。根据 Flux 架构,我应该如何构建我的项目代码?另外,是否有任何适用于 Flux 架构的开源框架,例如适用于 MVC 的 codeignighter?

在我读过的关于 Facebook Flux 架构的所有文章和教程中,它们都是使用 Nodejs 进行演示的后端,前端通常是 ReactJS(我也读过一篇使用 AngularJS 的文章)。但他们都专注于前端视角。

我从来都不是 MVC 的粉丝,自从我发现 Micro-frameworks 以来,我就使用了我自己版本的 Modal-View 设计模式(与精简的 Flux 模式惊人地相似)。但我一直对如何构建它感到模糊。

Facebook 关于 Flux 模式的帖子解释了很多有关速度和安全性的内容。但所有教程都只关注 ReactJS。来自 Pluralsight、egghead 和我去年遇到的所有其他教程都使用 NodeJS 后端。其中 99% 并没有真正演示 Flux 架构,而是展示了如何使用 ReactJS。因此,经过近一年的搜索,我仍然不清楚通量到底是什么。

php design-patterns backend flux

5
推荐指数
1
解决办法
3360
查看次数

Chrome 加载第一个 AJAX 响应速度很慢

我正在使用 React 和 Flux 构建一个应用程序。单击项目列表会启动一个操作,然后使用该操作启动(通过效果)AJAX 请求axios(尽管我尝试过superagent-bluebird-promise得到相同的结果)。

问题是,使用 Google Chrome 时,首次发出此请求时,单击列表中的项目与发起 AJAX 请求之间存在大约两秒的延迟。后续点击将立即开始加载请求。

使用 Firefox,所有请求都是即时的。

编辑:我已经在两台 Ubuntu PC 上进行了测试,并且可以复制相同的症状。我还可以在 Android 上复制这些症状,但延迟较长(大约 4 秒)。

这是在 Chrome 下制作的配置文件的屏幕截图:

Chrome 奇怪的调度操作 AJAX 延迟

这是 Chrome 的错误还是什么?

javascript ajax google-chrome flux reactjs

5
推荐指数
1
解决办法
1510
查看次数

为什么我们需要 Flux 中的调度员?

这不是 React 特定的问题。我正在考虑在 Aurelia/Angularjs 中实现 Flux。

在阅读通量时,我不相信调度员步骤的必要性。为什么组件不能直接调用 store 来更新和检索数据?这种方法有什么问题吗?

例如:如果我有一个CarStore可以创建新车、更新汽车并获取汽车列表(只是 CRUD api 上的一个薄层),我应该能够通过直接从car-grid组件调用商店来检索/更新列表. 由于 store 是单例,每当列表更新时,car-grid应该自动获取新项目。在这种情况下使用调度程序有什么好处?

flux reactjs aurelia

5
推荐指数
1
解决办法
850
查看次数

为什么不使用 cookie 而不是 Redux?

我一直在阅读 Redux,它解决了很多问题。但本质上,它只是一个中央“真实”存储。

直觉上,尽管我发现状态仍然通过道具或上下文传递的事实并不优雅。

除了磁盘 i/o 速度,为什么不使用本地 cookie 存储作为中央数据存储?这将消除通过组件传递数据的需要。

我看到的唯一挑战是数据安全,但这并不是所有应用程序的问题。

根据戴夫的评论进行详细说明。我的实际问题更多是关于拥有一个中央 Redux 风格商店的可能性,而无需通过道具或上下文主动传递状态。饼干似乎是一个有趣的探索途径。

快进几年的经验:

  • redux 的重点是不可变的数据流,cookies 更像是一个全局变量
  • 您可以使用 cookie 存储或本地存储 API 来存储数据(请参阅 参考资料react-redux-persist),但您不会在性能方面依赖它
  • 我们无法控制 cookie 处理(由浏览器决定),因此依赖它对于兼容性来说是一个坏主意

cookies flux reactjs redux react-redux

5
推荐指数
1
解决办法
2196
查看次数

当我的响应被 Spring 5 包装在 json 分页对象中时,如何返回 Flux<Order> ?

我有一个 Web 服务,我正在尝试使用新的 Spring 5 WebClient 来使用它。

\n\n

工作示例

\n\n
# GET /orders/\n[\n    { orderId: 1, ...\xc2\xa0},\n    { orderId: 1, ...\xc2\xa0}\n]\n
Run Code Online (Sandbox Code Playgroud)\n\n

以及调用的java代码

\n\n
// Java\nFlux<Order> ordersStream = webClient.get()\n    .uri("/orders/")\n    .exchange()\n    .flatMap(response -> response.bodyToFlux(Order.class));\n
Run Code Online (Sandbox Code Playgroud)\n\n

问题

\n\n

来自 Web 服务的响应是分页的,因此不直接包含项目列表,如上例所示。

\n\n

看起来像这样

\n\n
# GET /orders/\n{\n    "error": null,\n    "metadata": {\n      "total": 998,\n      "limit": 1000,\n      "offset": 0\n    },\n    "data": [\n       { orderId: 1, ... },\n       { orderId: 2, ... },\n    ]\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

我怎样才能获得子"data"密钥Flux<Order>

\n\n

可能的解决方案,但我不知道这是否是最好的方法......

\n\n

创建一个包装类并转换包装器 …

spring flux spring-boot project-reactor spring-webflux

5
推荐指数
0
解决办法
3000
查看次数

Flux 与全局变量(在服务中)

我正在 Angular/NGRX 中开发 Flux 应用程序。与我一起工作的一位实习生说,他在他的第一个应用程序之一中使用了角度服务来存储数据。乍一看,这对我来说似乎是不正确的方法,但经过一段时间的考虑,我发现它与助焊剂存储的想法没有太大区别。您认为这种方法的优点和缺点是什么?
使用 ngrx 存储、操作、减速器等,而不是仅仅使用一些 getter/setter 的普通角度服务,是否会更好?
谢谢!

architecture design-patterns flux ngrx angular

5
推荐指数
1
解决办法
776
查看次数

Vuex store 与组件 props:何时使用每种方法进行组件通信?

我大约两周前学习了 Vuex。我认为我对 Vuex(或 Flux)是什么以及它是如何工作的有相当深入的了解。

我仍然不知道什么时候应该把财产放入商店,什么时候不应该。您知道何时执行此操作的一些准则吗?

一个明显的情况是,当需要相同信息的组件在组件层次结构中彼此相距较远时。但如果他们很亲密(兄弟姐妹或亲子关系)怎么办?在这种情况下,你是否总是使用组件 props 来传达值?如果没有,那么什么时候没有,为什么?

极端一点,在很多情况下,我可以想象存储在存储中的大部分值和几乎没有任何道具的组件。这种情况对我来说会感觉很奇怪,但我想知道这种方法是否有什么问题。

flux vuex

5
推荐指数
1
解决办法
1231
查看次数