不可变数据
fluth 支持不可变数据,底层采用limu实现。
Stream
Stream 流的set方法可以 immutable 的修改节点的数据。
typescript
import { $ } from 'fluth'
const promise$ = $({ a: 1, b: { c: 2 } })
const oldValue = promise$.value
promise$.set((state) => (state.a = 3))
const newValue = promise$.value
console.log(oldValue === newValue) // false
console.log(oldValue.b === newValue.b) // true
Observable
Observable 流可以通过 set 操作符修改流经当前节点的数据。
typescript
import { $, set } from 'fluth'
const promise$ = $({ a: 1, b: { c: 2 } })
const observer1$ = promise$.pipe(set((state) => (state.a = 3)))
const observer2$ = observer1$.pipe(set((state) => (state.a = 4)))
console.log(promise$.value === observer1$.value) // false
console.log(observer1$.value === observer2$.value) // false
console.log(promise$.value.b === observer1$.value.b) // true
console.log(observer1$.value.b === observer2$.value.b) // true