关于computed渲染问题
来源:4-5 依赖收集(上)

_涅槃_
2020-11-02
老师有个关于computed的问题想问你一下,我写了一个计算属性status(){ if(this.obj.state === ‘1’)return ‘显示’}, data里面定义的objj初始为{},没有state属性,mounted里面调用接口之后给obj赋值了,这时候有了state属性,按理说计算属性status应该会执行两次(初始和接口赋值),第一次初始没有state应该会报错,但实际计算属性status只运行了一次,请问这是为什么了?
写回答
3回答
-
前端工程师666777888
2021-03-29
要记住一个根本原则:
改变一个值要实现一些操作,首先这个值要有set方法。因为改变值后,后续的操作一定从执行set方法开始的
你的案例中:obj有set方法。但是obj.state 并没有set方法。所以无论你怎么改变obj.state,都不会发生什么
00 -
_涅槃_
提问者
2020-11-03
已经调试过了,当初始化data里面obj为空对象的时候,computed属性status只执行了一次,当obj初始的时候有state属性的时候执行了两次
012020-11-03 -
ustbhuangyi
2020-11-02
你在 computed 定义里加个 debugger,断点调试一下先
00
相似问题