【发布时间】:2026-01-26 08:05:02
【问题描述】:
我正在开发一个 vue 应用程序,它可以从法定货币转换为加密货币,反之亦然。该应用的演示可以在这里找到:Demo。
您会注意到计算完成并在输入文本时自动显示在对面的输入框中。问题是目前该应用只监视绑定到输入的变量的变化。
当用户从选择框中选择另一个选项时,我还需要进行此计算。
我一直在努力思考如何在不导致无限循环的情况下实现这一点。
这是我天真的尝试:codepen。
目前我对为什么这不起作用的理解是:
...input1 changes -> watch input1 called -> watch input1 modifies
input2 -> watch input2 called -> watch input2 modifies input1....
这是一个无限循环。一定有 Vue 的一部分我还不够熟悉来处理这个确切的问题。
谢谢,
【问题讨论】:
-
之前的
computed解决方案有什么问题? -
您提供给我的计算解决方案只关注两个输入框中的变化。 I need the calculation to be preformed also when there is a change in the select boxes.有人建议我使用观察者来执行此操作。
-
如果您还在计算属性中使用来自
<select>模型的值,它们也会在这些更改时更新。大概选择应该改变乘数 -
我正在使用它们代替您示例中的 const mul 但据我了解,计算仅在 input1 或 input2 值的变化时进行。
this.val2 = (val / this.cryptoRates[this.selectedCrypto][this.selectedFiat]).toFixed(3)我的直觉是我需要像文本框一样为两个选择器设置计算函数,但是我将如何避免写入全局变量并导致无限循环? -
啊,我明白你的意思了。我猜的问题是内部 values 仅在计算的 setter 中更新。如果你能以某种方式改变逻辑以使用 getter,你可能会有更多的运气
标签: javascript vue.js vuex vuetify.js