- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对如何使用 React 有自己的看法,并且正在构建自己的框架,受到 Om 的启发。我正在实现一些类似于 Flux 架构的东西,其中的存储可以根据某些事件进行 self 更新。
我不太明白的是为什么在 Flux 架构中我们需要存储依赖项?
存储不应该是给定有界上下文的独立数据持有者,就像我们对 CQRS 架构所做的那样?
在事件系统中,2 个 CQRS 组件最终可能会保存相同的数据。我们是否表达存储依赖性以避免在存储中保存重复数据?
有人可以提出一些非常具体的用例,其中需要存储依赖项并且问题很难通过任何其他方式解决吗?我自己找不到。
最佳答案
在 refluxjs我们通过多种方式解决 waitFor 问题,一种用于顺序数据流,另一种用于并行数据流。我尝试以一种避免保存相同数据(即双重维护数据)的方式对数据存储进行建模。
基本上,数据存储是 CQRS 组件,我尽量避免 2 个数据存储最终得到相同类型的数据。如果我需要以某种方式转换只有某些组件需要的数据,我会将其分解为“聚合”数据存储。简单的实现:
var carsStore = Reflux.createStore({
init: function() {
this.listenTo(Actions.updateCars, this.updateCallback);
},
updateCallback: function() {
$.ajax('/api/cars', {}).done(function(data) {
this.trigger(data.cars);
}.bind(this));
}
});
我们可以创建另一个数据存储,通过监听 carsStore
来聚合数据:
var modelsStore = Reflux.createStore({
init: function() {
this.listenTo(carsStore, this.carsCallback);
},
carsCallback: function(cars) { // passed on from carsStore trigger
this.trigger(this.getModels(cars)); // pass on the models
}
getModels: function(cars) {
return _.unique(_.map(cars, function(car) { return car.model; }));
}
});
这样,您的 React View 组件就可以使用一个来获取汽车,另一个来获取模型,这些模型是从 carStore
聚合的。
如果存储需要等待两个并行数据流完成,我们提供 Reflux.all
来连接操作和存储。这很有用,例如如果您正在等待从不同的 REST 资源加载数据。
var carsAndPartsAreLoaded = Reflux.all(carStore, partsStore);
// you may now listen to carsAndPartsAreLoaded
// from your data stores and components
希望这对您有意义。
关于cqrs - 对 React 的 Flux 架构感到困惑 - waitFor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25228433/
我正在尝试学习Rust。我正在阅读一本书online,该书实现了unix程序cat。现在,我试图读取作为像cargo run file1.txt file2.txt这样的参数传递的文件的内容,但是程序
我在 GHC 8.0.1 中遇到了一个带有种类索引 (?) GADT 的奇怪情况,其中在类型与种类签名中引入 foralls 会产生不同的类型检查行为。 考虑以下数据类型: {-# LANGUAGE
我正在使用 Perl 5.10 开发应用程序,HTML::Mason和 Apache 2.2。这是我第一次在大型项目中使用 Perl 5.10。我每隔一段时间就会出现奇怪的行为。应用程序因一个非常奇怪
我正在尝试将文件上传到aws中的rust中,因为我使用的是 rusoto_s3 的s3 rust客户端,当这些部分从单个线程发送时,我设法使分段上传代码正常工作不是我想要的,我想上传大文件,并且希望能
我是一名优秀的程序员,十分优秀!