Javascript Vue computed在引用与computed中相同的键时,在渲染中抛出“错误:”InternalError:递归过多“
我是Vue的新手。我想知道computed中的函数被调用了多少次,因此我编写了以下组件:Javascript Vue computed在引用与computed中相同的键时,在渲染中抛出“错误:”InternalError:递归过多“,javascript,vue.js,Javascript,Vue.js,我是Vue的新手。我想知道computed中的函数被调用了多少次,因此我编写了以下组件: const ComputedCounter = { name: "ComputedCounter", template: ` <span>{{ value }}</span> `, computed: { value() { const current = this.value
const ComputedCounter = {
name: "ComputedCounter",
template: `
<span>{{ value }}</span>
`,
computed: {
value() {
const current = this.value || 0;
return current + 1;
}
}
}
但是,会引发“呈现中出错:内部错误:递归过多”错误。我很困惑,这里发生了什么,有什么方法可以让它工作吗?我没有看到递归中的停止条件 太多的递归相当于超过了最大调用堆栈大小
因此,如果您阅读了以下文档,这不是vue的js问题: 计算的属性只有在其某些 依赖关系已经改变 这意味着,如果您的值this.value发生更改,则将执行您的计算属性。但问题是,如果执行计算属性,则会更改值。现在,由于值已更改,您再次执行计算属性,并且由于该值已更改,这将再次导致您的计算属性再次执行,依此类推,我希望您能得到它。在您的数据中,设置:
_value: 0
然后您可以在值方法中引用此值:
value() {
return this._value++;
}
你能用代码说明你的意思吗?据我所知,this.value不引用computed.value函数。这能回答你的问题吗?好了,现在我明白了为什么会发生这个问题,但我想不出一个办法来做我想做的事情。@Tomáššerný你想做什么?