【发布时间】:2019-02-22 11:10:29
【问题描述】:
我很难确定何时使用 getter 或 state 以获得最佳性能。
我会列出一些场景,欢迎大家评论:
场景 1 - Getter VS 动作和 getter 中的状态
在操作或 getter 中,如果您多次使用产品列表来查找结果,您会使用 getters.products 还是 state.products?
另外,如果您需要在同一个函数中使用产品 10 次,您会调用 getters.products 或 state.products 10 次,还是会在开始时将产品分配给一个变量,然后使用那 10 次 次?有没有比其他的有任何性能提升?
场景 2 - Getter 返回函数
在 Vuex 文档中,它指出在 getter 中返回函数不会缓存该函数的结果。所以有一个用于对 1000 种产品列表进行排序的吸气剂会很糟糕,对吧?喜欢:
const getters = {
sortedProducts: state => {
return state.products.sort(a, b => {
...
})
}
}
因此,当产品更新时,可能会或可能不会改变排序,然后它会再次进行整个计算,或者?
拥有一个通过动作和突变手动更新的状态会更好吗?
一般来说,让 getter 返回与大量数据有关的函数是否有意义?
【问题讨论】:
-
我有同样的问题,下面的答案解决了。