vue3で工数計算機を作成しています。
工数入力箇所が複数ある場合に、それぞれの場所でオブジェクトとcomputedを作成するとコードが肥大化するため、まとめ流ことができればまとめたいと考えているのですが、ご教授いただけないでしょうか。
下記コードでは、first工数・second工数それぞれの計算結果を表示しています。
firstTimeの数字とfirstTimePriceをかけてfirstResultに表示しています。
この記載を計算式分増やさずに、関数で計算式をまとめるなどしたいのですが、方法がわかりません。
html
1<ul> 2 <li> 3 <p>first工数</p> 4 <p> 5 <input type="number" v-model="firstTime" /> 6 </p> 7 <p>×</p> 8 <p>{{ firstTimePrice.toLocaleString() }}円</p> 9 <p>=</p> 10 <p>{{ firstResult.toLocaleString() }}円</p> 11 </li> 12 <li> 13 <p>second工数</p> 14 <p> 15 <input type="number" v-model="secondTime" /> 16 </p> 17 <p>×</p> 18 <p>{{ secondTimePrice.toLocaleString() }}円</p> 19 <p>=</p> 20 <p>{{ secondResult.toLocaleString() }}円</p> 21 </li> 22 </ul> 23
vue
1<script> 2export default { 3 name: 'app', 4 data() { 5 return { 6 firstTime: 0, 7 secondTime: 0, 8 firstTimePrice: 20000, 9 secondTimePrice: 30000, 10 }; 11 }, 12 13 computed: { 14 firstResult: function () { 15 var firstResult = 0 16 firstResult = this.firstTime * this.firstTimePrice 17 return firstResult 18 }, 19 secondResult: function () { 20 var secondResult = 0 21 secondResult = this.secondTime * this.secondTimePrice 22 return secondResult 23 } 24 } 25 26}; 27 28</script>