天涯盡頭無女友
2022-10-27 16:34:12
我是 Vue 的新手。我想知道計(jì)算中的函數(shù)被調(diào)用了多少次,所以我寫了這個(gè)組件:const ComputedCounter = { name: "ComputedCounter", template: ` <span>{{ value }}</span> `, computed: { value() { const current = this.value || 0; return current + 1; } }}但是,會(huì)拋出“渲染錯(cuò)誤:“內(nèi)部錯(cuò)誤:遞歸過多””錯(cuò)誤。我很困惑,這里發(fā)生了什么,有沒有辦法使這項(xiàng)工作?
3 回答
千萬里不及你
TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超9個(gè)贊
如果您閱讀文檔:
計(jì)算屬性僅在其某些反應(yīng)性依賴項(xiàng)發(fā)生更改時(shí)才會(huì)重新評(píng)估。
這意味著如果您的值this.value發(fā)生變化,那么您的計(jì)算屬性將被執(zhí)行。但問題是,如果您執(zhí)行您更改的計(jì)算屬性value?,F(xiàn)在因?yàn)橹狄呀?jīng)改變,你再次執(zhí)行你的計(jì)算屬性,因?yàn)檫@value已經(jīng)改變了,女巫再次導(dǎo)致你的計(jì)算屬性再次被執(zhí)行,依此類推,我希望你能得到它。
慕標(biāo)琳琳
TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊
我在您的遞歸中看不到停止條件
太多遞歸相當(dāng)于超出最大調(diào)用堆棧大小
所以這是 js 問題而不是 vue
Qyouu
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超11個(gè)贊
在您的數(shù)據(jù)中,設(shè)置:
_value: 0
那么你可以在你的 value() 方法中引用 this._value :
value() {
return this._value++;
}添加回答
舉報(bào)
0/150
提交
取消
