MobX 中的@computed 和@action 有什么区别?
What's the difference between @computed and @action in MobX?
在 MobX 中 @computed
和 @action
有什么区别?
它们都是函数,它们有什么区别?
差异在 documentation 中说明。
动作
Usage: action(fn) or action (annotation)
Use on functions that intend to modify the state.
计算
Usage: computed(fn, options?) or computed(options?) (annotation)
Creates an observable value that is derived from other observables,
but won't be recomputed unless one of the underlying observables
changes.
所以 computed 除了观察状态之外什么都不做。
codesandbox
动作实际修改状态。 action example
@computed 当函数将 'compute' 来自现有信息的 return 值时使用。
@action用于会改变现有信息(状态)的函数,提示'observers'访问最新版本的相关'observable(s)'.
在 MobX 中 @computed
和 @action
有什么区别?
它们都是函数,它们有什么区别?
差异在 documentation 中说明。
动作
Usage: action(fn) or action (annotation)
Use on functions that intend to modify the state.
计算
Usage: computed(fn, options?) or computed(options?) (annotation)
Creates an observable value that is derived from other observables, but won't be recomputed unless one of the underlying observables changes.
所以 computed 除了观察状态之外什么都不做。 codesandbox
动作实际修改状态。 action example
@computed 当函数将 'compute' 来自现有信息的 return 值时使用。
@action用于会改变现有信息(状态)的函数,提示'observers'访问最新版本的相关'observable(s)'.