Javascript Vue computed在引用与computed中相同的键时,在渲染中抛出“错误:”InternalError:递归过多“

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

我是Vue的新手。我想知道computed中的函数被调用了多少次,因此我编写了以下组件:

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ý你想做什么?