我知道您可以通过添加cache: false
选项来禁用 Vue计算属性中的缓存。例如:
computed: {
now: {
cache: false,
get() {
return Date.now();
}
}
}
但我想知道这个功能是否适用于 Vuex getters
答案 0 :(得分:8)
To"禁用"缓存,你可以利用这个事实,即用作函数的getter不会被缓存。
请注意,每次调用时都会运行通过方法访问的getter,并且不会缓存结果。
如果您不介意在访问非缓存属性时添加括号(实际上是调用函数),您可以使用以下内容:
getters: {
myNonCachedGetter: state => () => {
// original getter body
}
}
然后将其用作myNonCachedGetter()
。
事实证明以下内容并不适用于较新版本的vuex。
但是,如果您希望它看起来像普通的getter,可以将它包装到一个带调用的函数中:
getters: {
myNonCachedGetter: state => (() => {
// original getter body
})()
}
它 使代码看起来有点难以阅读,但可以像 myNonCachedGetter
一样简单地调用它。