action
用法:
- action(fn)
- action(name, fn)
- @action classMethod
- @action(name) classMethod
- @action boundClassMethod = (args) => { body }
- @action(name) boundClassMethod = (args) => { body }
action是一个工厂函数,可以接受name和fn两个参数,name是String,主要描述action的作用,fn是Function,是这个action的具体逻辑。action执行后返回一个函数,调用这个函数就会执行action,其实就是调用fn参数。
个人感觉在mobx中,action的作用更多的是用来注释当前的操作……使用的时候在name参数上写操作是干啥的,能够快速的了解action的意图。当然如果安装了devtools,action还能输出调试信息。
需要注意的是,如果使用useStrictapi开启了严格模式,就必须通过action才能修改状态(state),直接修改值会报错。
以上查阅来自查阅代码发现新的写法有感。。。
附查阅文档地址: