@@ -102,14 +102,16 @@ MVVM 框架的最大优势在于:当 Model 发生变化时,View 会自动更
102102
103103[ fluth] ( https://fluthjs.github.io/fluth-doc/ ) 采用类 Promise 的流式编程范式,Promise 是前端最常接触的异步流式编程范式,** 类 Promise 的流式编程范式极大地降低了流式编程的门槛** ,让流的大规模使用成为可能。
104104
105- fluth 流和 promise 的差异点:
105+ ::: details fluth 流和 promise 的差异点:
106106
107107- 相比 promise,fluth 可以不断发布并且支持取消定订阅
108108- 相比 promise,fluth 同步执行 then 方法,及时更新数据
109109- 相比 promise,fluth 保留每个订阅节点的数据并可直接访问
110110- 相比 promise,fluth 完全支持 PromiseLike
111111
112- fluth 流和 rxjs 的差异点:
112+ :::
113+
114+ ::: details fluth 流和 rxjs 的差异点:
113115
114116- fluth 上手非常简单,是类 promise 的流式编程库,只要会使用 promise 就可以使用
115117- fluth 的流是 hot、multicast 的,而 rxjs 的流还具备 cold、unicast 的特性
@@ -118,7 +120,34 @@ fluth 流和 rxjs 的差异点:
118120- fluth 订阅节点存在和 promise 类似的 status 状态
119121- fluth 可以添加插件来扩展流的功能和添加自定义行为
120122
121- fluth 为每个流节点保存了逻辑处理后的数据,让流节点既可以承载逻辑也可以承载数据,可以成为** 替代 ref、reactive 响应式数据的基础单元** 。
123+ :::
124+
125+ fluth 为每个流节点保存了逻辑处理后的数据,让流节点既可以承载逻辑也可以承载数据,如下所示:
126+
127+ ``` typescript
128+ import { $ } from " fluth" ;
129+
130+ const userInfo$ = $ ({ name: " fluth" , age: 18 , role: " admin" });
131+
132+ const isAdult$ = userInfo$ .thenImmediate ((value ) => value .age >= 18 );
133+
134+ const isAdmin$ = userInfo$ .thenImmediate ((value ) => value .role === " admin" );
135+
136+ userInfo$ .value ; // { name: "fluth", age: 18, role: "admin" }
137+ isAdult$ .value ; // true
138+ isAdmin$ .value ; // true
139+
140+ userInfo$ .set ((value ) => {
141+ value .age = 17 ;
142+ value .role = " user" ;
143+ });
144+
145+ userInfo$ .value ; // { name: "fluth", age: 17, role: "user" }
146+ isAdult$ .value ; // false
147+ isAdmin$ .value ; // false
148+ ```
149+
150+ 这样流节点可以成为** 替代 ref、reactive 响应式数据的基础单元** 。
122151
123152## 在 vue 框架中落地
124153
0 commit comments