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

在线等!计算属性是不是只在第一次计算的时候收集使用到的属性,第一次未收集到的属性值变化不会导致计算属性变化???求老司机指点!

在线等!计算属性是不是只在第一次计算的时候收集使用到的属性,第一次未收集到的属性值变化不会导致计算属性变化???求老司机指点!

白猪掌柜的 2019-10-25 21:14:41
计算属性是不是只在第一次计算的时候收集使用到的属性,之后当这些属性变化的时候,会重新计算属性??例如,下面的例子,prefix属性会每秒变化一次,但prefix属性的变化不会导致upper计算属性的变化。是不是因为第一次执行计算属性的时候,没有访问到prefix(因为if条件),之后,prefix变化也不会导致计算属性重新调用??{{upper}}varxyz=newVue({el:'#app',data:{name:'xx',prefix:'A',suffix:'Y'},computed:{upper:function(){var_this=this;console.log('recompute:'+this.name);if(_this.suffix.length>10)returnthis.name.toUpperCase()+"+"+this.prefix;returnthis.name.toUpperCase()+"_"+this.suffix;}},mounted:function(){var_this=this;this.timer=setInterval(function(){if(_this.name.length>100||_this.suffix.length>50||_this.prefix.length>50)return;_this.prefix=_this.prefix+_this.prefix;console.log("timer...prefix:"+_this.prefix);},1000);},beforeDestory:function(){if(this.timer){clearInterval(this.timer);}}});
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

按照vue的官方说明,计算属性里面的属性,只要这个属性是在data中的,都会被动态监控;
但是如果结果一致,计算属性不会执行,这是他的特性
                            
查看完整回答
反对 回复 2019-10-25
?
手掌心

TA贡献1942条经验 获得超3个赞

当upper被需要的时候(取值操作),会运行这个函数。虽然你的prefix一直在变化,可是suffix长度不够,所以压根没有用到prefix
                            
查看完整回答
反对 回复 2019-10-25
  • 2 回答
  • 0 关注
  • 410 浏览
慕课专栏
更多

添加回答

举报

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