У меня есть две переменные, например, priceInUSD и priceInRub и курс USD / рубль.
data: () => ({
priceInUSD: 0,
priceInRub: 0,
rate: 65.395402,
});
При изменении пользователяодна переменная, вторая должна быть пересчитана.Но если я использую watch () для обоих, это вызывает избыточный вызов вычислений и потенциально бесконечный цикл.Один пересчитывающий вторую, второй вызывающий элемент для первого, первый вызывающий элемент для второго и в бесконечности.
Когда я использую вычисления и методы получения / установки ...
computed: {
priceInUSD: {
get(){
return this.statePriceInUSD;
},
set(newValue){
this.statePriceInUSD = newValue;
this.statePriceInRub = newValue * this.rate;
}
},
priceInRub: {
get(){
return this.statePriceInRub;
},
set(newValue){
this.statePriceInRub = newValue;
this.statePriceInUSD = +newValue / this.rate;
}
},
}
...это тоже вызывает избыточный перерасчет другой переменной.
- Изменение цены в долларах США
- Пересчет цены в рублях (ок)
- Перезапуск повторного пересчетацена в долларах США (не в порядке)
Можно ли пересчитать две взаимосвязанные переменные, без избыточного пересчета первой переменной?