猿问
怎么去理解mobx的 @computed @autorun 我有点琢磨不透麻烦各位指点一下
怎么去理解mobx的@computed@autorun我有点琢磨不透麻烦各位指点一下
富国沪深
浏览 558
回答 2
2回答
慕婉清6462132
@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来解释...
0
0
0
湖上湖
不要把computed和autorun搞混。它们都是响应式调用的表达式,但是,如果你想响应式的产生一个可以被其它observer使用的值,请使用@computed,如果你不想产生一个新值,而想要达到一个效果,请使用autorun。举例来说,效果是像打印日志、发起网络请求等这样命令式的副作用。
0
0
0
随时随地看视频
慕课网APP
相关分类
JavaScript
我要回答