質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Q&A

1回答

563閲覧

vue3で複数プロパティをまとめたい

takesu

総合スコア14

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

0グッド

0クリップ

投稿2021/12/03 05:32

編集2021/12/03 05:34

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>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FKM

2021/12/03 06:36

Vue3を使用といっても、compositionAPIは用いない前提でしょうか?
takesu

2021/12/03 06:38

コメントありがとうございます! compositionAPIがまだ理解できておらず、このような書き方になっています・・・ compositionAPIを使用した場合にどのような記載となるでしょうか(compositionAPI勉強いたします!)
FKM

2021/12/03 09:53

使用しない前提なら、ある程度互換性はあるので、従来の記述で作ってみるといいでしょうね。
guest

回答1

0

同じ作業の繰り返しになる部分の対応方法は2つあります。

  • v-forディレクティブでループ制御(テーブルやリスト作成の場合)
  • コンポーネント化(ブロック化された部品に同じプログラム上の処理を施す場合)

今回の場合はfirstとsecond工数の部分をそれぞれコンポーネント化
firstとsecondそれぞれの工数をv-forディレクティブでループ

そんな感じで構築していけばいいのではないかと思います。

投稿2021/12/03 09:52

FKM

総合スコア3644

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問