Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mobx中使用@computed for array.length?_Javascript_Mobx - Fatal编程技术网

Javascript 在mobx中使用@computed for array.length?

Javascript 在mobx中使用@computed for array.length?,javascript,mobx,Javascript,Mobx,在mobx中,当使用observable.array()时,在@computed属性中计算.length是否有意义,或者它已经以某种方式在内部缓存 通常,在@computed中缓存什么类型的属性有意义?我应该什么都用吗?它是否可能导致不必要的重新计算?可观察数组的长度属性为: 所有此.$mobx.getArrayLength执行以下操作: 在@computed中缓存它所带来的好处将微乎其微 缓存经常使用的计算是一种很好的做法。我个人将其用于从@computed fullName(){return

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


通常,在
@computed
中缓存什么类型的属性有意义?我应该什么都用吗?它是否可能导致不必要的重新计算?

可观察数组的长度属性为:

所有
此.$mobx.getArrayLength
执行以下操作:

@computed
中缓存它所带来的好处将微乎其微

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

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