LoginSignup
0
1

More than 1 year has passed since last update.

【Vue.js】監視プロパティ 単位変換アプリ(例題)

Posted at

はじめに

こんにちは!
今回は【Vue.js】監視プロパティを使った単位変換アプリについてアウトプットしていきます!

書き方・解説

長さkm,m,mmを相互変換するアプリを制作します。

HTML
<div id="app">
  <p>
    <input type="text" v-model:value="km">km
  </p>
  <p>
    <input type="text" v-model:value="m">m
  </p>
  <p>
    <input type="text" v-model:value="mm">mm
  </p>
</div>
<!--それぞれのテキストを作り、双方向データバインディングで紐つける-->
Vue.js
var app = new Vue({
  el: "#app",
  data: {
    //⏬初期値はそれぞれ0とする
    km: 0,
    m: 0,
    mm: 0
  },
  watch: {
    //⏬kmの値が変更されたら以下の処理が実行される。
    km: function(value) {
      this.km = value
      this.m = value * 1000 //kmの1000倍の値
      this.mm = value * 1000000 //kmの1000000の値
    },
    //⏬mの値が変更されたら以下の処理が実行される。
    m: function(value) {
      this.km = value / 1000 //mの1000分の1の値
      this.m = value
      this.mm = value * 1000 //mの1000倍の値
    },
    //⏬mmの値が変更されたら以下の処理が実行される。
    mm: function(value) {
      this.km = value / 1000000 //mmの1000000分の1の値
      this.m = value / 1000 //mmの1000分の1の値
      this.mm = value
    }
  }
})

記述の仕方は至って前回と一緒です。dataに情報を入れ、watchで変化が起こった時の処理を記述します。

kmテキストの値を変更すると、
スクリーンショット 2021-10-19 20.35.22.png

mテキストの値を変更すると、
スクリーンショット 2021-10-19 20.35.49.png

mmテキストの値を変更すると、
スクリーンショット 2021-10-19 20.36.14.png

このようにwatchで記述された処理が、双方向データバインディングにより同期されテキストに表示されました。

最後に

今回は単位変換アプリ制作をアウトプットしました。
今回の記事を読んで質問、間違い等あればコメント等頂けると幸いです。

今後ともQiitaにてアウトプットしていきます!

最後までご愛読ありがとうございました!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1