Vue.jsサンプルコード(06)合計金額をリアルタイムに表示する

06. 合計金額をリアルタイムに表示するには?

今回も双方向データバインディングの例です。表計算的な機能を簡単に実現できます。

サンプルコード

  • Vue.jsバージョン: 2.5.2

サンプルコード03でご紹介したcomputedでメモ化すると、計算結果の表示を高速化できます。

    computed: {
      sum: function() { return this.a * this.b + this.c * this.d },
      tax: function() { return Math.ceil(this.sum * 0.08) },
    },

HTML側で{{sum + tax}}とインラインで式を書けるのもVue.jsのありがたい点です。表示にしか使わないような処理を書くときに便利です。

  <div class='text-right'>
    <p>  小計¥ {{sum}}</p>
    <p>消費税¥ {{tax}}</p>
    <p>  合計¥ {{sum + tax}}</p>
  </div>

Vue.jsでは、HTML側のテンプレート構文{{ }}を含むすべてのデータバインディングでJavaScript式を完全にサポートします(公式ドキュメント)。

宿題

上のサンプルでは数量をマイナスにできてしまいます。修正方法は?
解答例は次回に掲載します。

おまけ

Vue.jsロゴのカラーリングは一部地域でこちらへの連想を強く喚起することがあるようです。


バックナンバー(Vue.jsサンプルコード)

Vue.jsサンプルコード(01〜03)Hello World・簡単な導入方法・デバッグ・結果の表示とメモ化

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

hachi8833

Twitter: @hachi8833、GitHub: @hachi8833 コボラー、ITコンサル、ローカライズ業界、Rails開発を経てTechRachoの編集・記事作成を担当。 これまでにRuby on Rails チュートリアル第2版の半分ほど、Railsガイドの初期翻訳ではほぼすべてを翻訳。その後も折に触れてそれぞれ一部を翻訳。 かと思うと、正規表現の粋を尽くした日本語エラーチェックサービス enno.jpを運営。 実は最近Go言語が好き。 仕事に関係ないすっとこブログ「あけてくれ」は2000年頃から多少の中断をはさんで継続、現在はnote.muに移転。

hachi8833の書いた記事

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ