用vue的watch监听属性实现汇率的实时转换,可以自主选择将人民币转换美元或者欧元
时间: 2024-06-12 22:04:47 浏览: 148
模板代码:
```
<template>
<div>
<h1>汇率转换器</h1>
<h2>请输入金额:</h2>
<input v-model="amount" type="number" min="0">
<h2>请选择货币类型:</h2>
<select v-model="currency">
<option value="CNY">人民币</option>
<option value="USD">美元</option>
<option value="EUR">欧元</option>
</select>
<h2>转换结果:</h2>
<p>{{ result }}</p>
</div>
</template>
```
JavaScript代码:
```
<script>
export default {
data() {
return {
amount: 0,
currency: 'CNY',
rate: {
USD: 0.15, // 1人民币 = 0.15美元
EUR: 0.13, // 1人民币 = 0.13欧元
},
};
},
computed: {
result() {
if (this.currency === 'CNY') {
return this.amount;
} else {
return (this.amount * this.rate[this.currency]).toFixed(2);
}
},
},
watch: {
currency() {
if (this.currency === 'CNY') {
this.rate.USD = 0.15;
this.rate.EUR = 0.13;
} else if (this.currency === 'USD') {
this.rate.USD = 1;
this.rate.EUR = 0.85;
} else if (this.currency === 'EUR') {
this.rate.USD = 1.18;
this.rate.EUR = 1;
}
},
},
};
</script>
```
解释:
1. `data`中定义了初始状态下的金额、货币类型、以及汇率表。
2. `computed`中定义了转换结果的计算方法,如果货币类型为人民币,则返回金额本身,否则返回金额乘以对应汇率的结果,并保留两位小数。
3. `watch`中监听货币类型的变化,根据不同的货币类型更新汇率表中的汇率。如果货币类型为人民币,则汇率表中的汇率不需要变化。
阅读全文