gpt4 book ai didi

javascript - 在 mobx 中使用 @computed 作为 array.length?

转载 作者:行者123 更新时间:2023-11-29 11:01:44 25 4
gpt4 key购买 nike

在 mobx 中,当使用 observable.array() 时,在 @computed 属性中计算 .length 是否有意义,或者它已经以某种方式在内部缓存了?

通常什么样的属性在@computed中缓存是有意义的?我应该将它用于所有事情吗?它可能会导致不必要的重新计算吗?

最佳答案

可观察数组的长度属性是defined as follows :

Object.defineProperty(ObservableArray.prototype, "length", {
enumerable: false,
configurable: true,
get: function(): number {
return this.$mobx.getArrayLength()
},
set: function(newLength: number) {
this.$mobx.setArrayLength(newLength)
}
})

所有 this.$mobx.getArrayLength 都做 is the following :

getArrayLength(): number {
this.atom.reportObserved()
return this.values.length
}

将它缓存在 @computed 中的好处将微乎其微。

缓存您经常使用的计算是一种很好的做法。我个人将它用于 @computed fullName() { return this.firstName + ' ' + this.lastName; 中的所有内容; },例如缓存 supercluster .这更多是一个品味问题,除非您正在处理更繁重的计算,否则它会变得非常有用。

关于javascript - 在 mobx 中使用 @computed 作为 array.length?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45862489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com