Мне трудно понять, когда использовать геттер или состояние для лучшей производительности.
Я перечислю некоторые сценарии, которые вы можете комментировать:
Сценарий 1. Состояние получателей VS в действиях и получателях
В действии или получателе, если вы используете список продуктов несколько раз, чтобы найти результат, будете ли вы тогда использовать getters.products или state.products?
Кроме того, если вам нужно было использовать продукты 10 раз в одной и той же функции, вы бы вызвали getters.products или state.products 10 раз или вначале присваивали продукты переменной, а затем использовали ее10 раз?Есть ли какой-либо выигрыш в производительности по сравнению с другими?
Сценарий 2. Получатели, возвращающие функцию
В документации Vuex говорится, что возвращение функции в получателе будетне кэшировать результат этой функции.Так что иметь получателя для сортировки списка из 1000 продуктов было бы плохо, верно?Например:
const getters = {
sortedProducts: state => {
return state.products.sort(a, b => {
...
})
}
}
Таким образом, когда бы ни обновлялся товар, который может изменить или не изменить сортировку, тогда он будет выполнять весь расчет еще раз, или?
Было бы лучшевместо этого иметь состояние, которое вручную обновляется действием и мутацией?
Вообще, имеет ли смысл когда-либо получать получатели, возвращающие функции, связанные с большим объемом данных?