Flux Pattern

Flux是Facebook提出的一种新的架构模式。一个Flux架构一般分为4个部分:

  • View:视图层(界面)
  • Action:视图层发出的消息或事件,如点击按钮
  • Dispatcher:派发器,用来接受Actions、执行回调函数
  • Store:数据层,用来存放应用状态,一旦发生变动,就要通知Views更新界面

执行流程
  •  用户操作(访问)View
  • View发出用户的Action给Dispatcher
  • Dispatcher接收到Action,通知Store更新数据(比如更新Store里checkbox的选中状态)
  • Store更新后,通知View进行界面刷新
  • View收到通知后,更新界面。

看个例子:
       现在有一个菜单叫MenuView 和一个目内容页叫ContentView,对应存储菜单数据的叫MenuStore、存储内容页数据的叫ContentStore,一个分发器Dispatcher、定义了两个动作叫MenuAction和ContentAction。我们现在模拟菜单的点击(itemClicked)看看数据是如何流转的,最后又是如何更新在界面上的。
先来看看涉及类的类图:

java代码:
/**
 * 
 * Flux is the application architecture that Facebook uses for building client-side web
 * applications. Flux eschews MVC in favor of a unidirectional data flow. When a user interacts with
 * a React view, the view propagates an action through a central dispatcher, to the various stores
 * that hold the application'
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Reactor库中,`Flux`是一种异步执行的多个结果的数据流,它类似于Java中的`Stream`。`Flux`可以让您更轻松地处理和转换数据流,以及处理来自外部数据源的事件。 `Flux`可以使用多个方式创建,例如使用静态方法、使用`Iterable`或`Stream`、从`Mono`转换等。以下是一个使用静态方法创建`Flux`的示例: ```java import reactor.core.publisher.Flux; public class FluxExample { public static void main(String[] args) { Flux.just("Hello", "World") // 创建一个包含两个字符串的Flux .subscribe(System.out::println); // 订阅Flux并在元素可用时打印它们 } } ``` 在上面的代码中,我们使用`Flux.just`方法创建了一个包含两个字符串的`Flux`,然后使用`subscribe`方法来订阅它并在元素可用时打印它们。 `Flux`还提供了许多其他方法,可以用于创建、转换和组合`Flux`。例如,您可以使用`map`方法将`Flux`中的元素转换为另一种类型,或使用`merge`方法将多个`Flux`合并为一个。以下是一个使用`map`和`merge`的示例: ```java Flux<String> flux1 = Flux.just("Hello", "World"); Flux<String> flux2 = Flux.just("Reactor", "Flux"); Flux<String> result = Flux.merge(flux1.map(String::toUpperCase), flux2.map(String::toLowerCase)); result.subscribe(System.out::println); // 输出 "HELLO", "WORLD", "reactor", "flux" ``` 在上面的代码中,我们首先使用`map`方法将`flux1`和`flux2`中的字符串转换为大写和小写,然后使用`merge`方法将它们合并为一个`Flux`。最后,我们订阅了`result`并打印了它。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值