1. autorun()/autorunAsync()
  • autorun(debugname?, () => { sideEffect })
    • 追踪在sideEffect运行期间访问过的 observable 的状态
    • 会自动执行
2.when()
  • when(debugname?, () => condition, () => { sideEffect })
    •  满足条件时才执行
3.reaction()
  • reaction(debugname?, () => data, data => { sideEffect }, fireImmediately = false, delay = 0)
    • 当data变化时才会执行sideEffect. 
    • sideEffect中的数据变动不会被跟踪,关心的只是data变量
  • reaction(() => data, data => { sideEffect }, options?)

4.observe():property被改动之后被调用。
  • observe(target, propertyName?, listener, invokeImmediately?)
     
    • target: 观察的 observable
    • propertyName: 可选参数,用来指定某个属性进行观察。
      • 注意,observe(user.name, listener)和 observe(user, "name", listener) 根本是完全不同的。前者观察 user.name(或许根本不是一个 observable) 里面的当前值,而后者观察 user 的 name 属性。
    • listener: 在每次变化作用于 observable 后调用的回调函数。
      • 接收一个用来描述变化的对象,除了装箱的 observable,它调用 listener 有两个参数: newValue、oldValue
    • invokeImmediately: 默认是 false。如果你想 observe 直接使用 observable 的状态(而不是等待第一次变化)调用 listener 的话,把它设置为 true。不是所有类型的 observable 都支持。


5. intercept():拦截器。property被改变之前被调用。
  • intercept(target, propertyName?, interceptor)



2.reaction:

2019-02-16 22:04:06 0 8
这里是评论

相关推荐