为了账号安全,请及时绑定邮箱和手机立即绑定

怎么去理解mobx的 @computed @autorun 我有点琢磨不透麻烦各位指点一下

怎么去理解mobx的 @computed @autorun 我有点琢磨不透麻烦各位指点一下

富国沪深 2019-05-25 13:32:55
怎么去理解mobx的@computed@autorun我有点琢磨不透麻烦各位指点一下
查看完整描述

2 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

@computed是为了优化代码逻辑。比如component中需要展示price以及total两个信息。不使用@computed的话,需要这么写。
@observablecount;
handleCountAdd(){
this.count+=1;
this.setState({total:this.count*this.props.price});
}
假如使用了@computed,就可以写成
@observablecount;
@computedgettotal(){
returnthis.count*this.props.price;
}
handleCountAdd(){
this.count+=1;
}
第二种方法明显优于第一种,因为total其实相当于是根据price和count得到的,虽然它同样控制着展示,但是作为state会显得有些冗余。
@autorun的使用频次太少,我也没有找到很好的case来解释...
                            
查看完整回答
反对 回复 2019-05-25
?
湖上湖

TA贡献2003条经验 获得超2个赞

不要把computed和autorun搞混。它们都是响应式调用的表达式,但是,如果你想响应式的产生一个可以被其它observer使用的值,请使用@computed,如果你不想产生一个新值,而想要达到一个效果,请使用autorun。举例来说,效果是像打印日志、发起网络请求等这样命令式的副作用。
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 557 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信