前回、Vue.jsの簡単な動かし方を試しましたが、今度は分岐や繰り返し、ボタンイベントを試してみましょう。

 

まずは、動作検証用のサイトを開きます。

https://jsfiddle.net/

 

次に、サイトを開いたら、左ペインの「External Resources」に必要なJSを追加

Veu.jsを使う場合はこちらを追加:https://cdn.jsdelivr.net/npm/vue

※上記のURLを直接開くと難読化されたJavaScriptのコードが表示されますが、気にしないでください。

 

では、まずは"分岐"から。

Vue.jsでは分岐は v-if 属性をhtmlコードへ記述します。

htmlとしては解釈されないので、表示の邪魔になりません。

 

以下のコードを前回と同じようにjsfiddleへ張り付けていってください。

 

[htmlコード記述]部分に以下のコードを張り付けます。

======================================

<div id="disp-2">
  <span v-if="hasError">{{message}}</span>
  <span v-if="!hasError">エラーが無い時に表示</span>
</div>

======================================

 

[JavaScriptコード記述]部分に以下のコードを張り付けます。

======================================

// id="disp-2"が定義された範囲について、Vue.jsの制御を追加

var vue2 = new Vue({

  el: '#disp-2',
  data: {
    hasError: true,  // エラー有り・無しのフラグ
    message: 'エラーメッセージを表示!'
  }
})

======================================

 

[処理結果を表示]部分に以下のような結果が表示されます。

======================================

(hasErrorがtrueの時)

エラーメッセージを表示!

(hasErrorがfalseの時)

エラーが無い時に表示

======================================

 

このように、簡単にフラグによって表示したり切り替えたりできます。

 

次に"繰り返し"を試します。

Vue.jsでは繰り返しは v-for 属性をhtmlコードへ記述します。

 

[htmlコード記述]部分に以下のコードを張り付けます。

======================================

<div id="disp-3">
  <span v-if="hasError">
    <ol>
      <li v-for="ite in messages">{{ite.message}}</li>
    </ol>
    </span>
</div>

======================================

 

[JavaScriptコード記述]部分に以下のコードを張り付けます。

======================================

// id="disp-3"が定義された範囲について、Vue.jsの制御を追加

var vue3 = new Vue({

  el: '#disp-3',
  data: {
    hasError: true,
    messages: [
      { message: '入力エラー' },
      { message: '形式エラー' },
      { message: 'サイズエラー' }
    ]
  }
})

======================================

 

[処理結果を表示]部分に以下のような結果が表示されます。

======================================

  1. 入力エラー
  2. 形式エラー
  3. サイズエラー

======================================

 

はい、簡単に繰り返しが確認できました。

 

最後にボタンイベントを行ってみます。

 

[htmlコード記述]部分に以下のコードを張り付けます。

======================================

<div id="disp-4">
  <p>{{ message }}</p>
  <button v-on:click="clickButton">PUSH!!!</button>
</div>

======================================

 

[JavaScriptコード記述]部分に以下のコードを張り付けます。

======================================

// id="disp-4"が定義された範囲について、Vue.jsの制御を追加

var vue4 = new Vue({

  el: '#disp-4',
  data: {
      message : 'まだ押されていない'
    },
    methods : {
      clickButton: function() {
           this.message = 'click button!!'
      }
    }
})

======================================

 

ボタンを押下するとメッセージが変わったことが確認できたと思います。


このようにVue.jsを使うとデザイナーとコードの分離ができてるため、

デザイナーさんはHTMLやCSSスタイル、プログラマはコードを専任することができようになります。

 

 

 

今月の帰社日は『叙々苑』。

 

語るより先に見てもらいましょう!

 

キムチの盛り合わせ!

 

特選タン塩焼

 

2杯目の海鮮チジミ

 

本命の特選ロース薄切焼

 

あまりの美味しさに至福のNAKAさん

 

中でも特選ロース薄切焼は別格でした。

(自分はあまりにも食べ過ぎて若干お腹を壊して今しましたが・・・。)

 

また、ぜひ来年も食しにいきたいですね!

 

Vue.jsは以下の特徴を持つJavaScriptライブラリ。

 

【特徴】

・シンプル、かつ、HTMLベースの平易なテンプレートで学習コストが低い
・リアクティブなデータバインディング
・コンポーネント指向のUI
・ファイルサイズが軽量(min+gzip圧縮16kb)
・レンダリングが速い

 

(リアクティブとは?)

DOMとJavaScriptのデータを同期するための仕組みのこと。

HTMLテンプレート内でデータバインディングを指定するとDOMとデータが同期される。

そうすることで、面倒なデータとDOMの同期から解放されるようになります。
 

(コンポーネント指向とは?)

一つの部品(コンポーネント)として作れるようになることで、それらを組み合わせることで、大規模なWebサイト/Webアプリケーションの構築も容易になります。

 

JavaScriptのフロントエンドではReact.js,Angular.jsをはじめ多くのフレームワークが存在していますが、
圧倒的なフレームワークの学習コストが低いことがVue.jsの特徴になるかと思います。

 

説明はこれくらいにして実際に動かしてみましょう。

 

■jsfiddleで簡単に動作検証

以下のサイトを開きます。

https://jsfiddle.net/

 

簡単にサイトの説明すると以下のような感じとなります。

 

そして、

[htmlコード記述]部分に以下のコードを張り付けます。

======================================
Vue.jsを使ってみる
<div id="disp">
  <p>値を表示:{{ name }} は {{ price }}円</p>
  <p>HTML内で計算:{{ name }} は {{ price * 1.08 }}円</p>
  <p>functionで計算:{{ name }} は {{ calcTax }}円</p>
</div>

======================================

 

[JavaScriptコード記述]部分に以下のコードを張り付けます。

======================================

var vm = new Vue({
  el: '#disp',    // セレクターで指定
  data: {         // データを用意(JSON形式)
    name: 'バナナ',
    price: 200
  },
  computed: {   // functionを定義
    calcTax: function() {
      return this.price * 1.08;
    }
  }
});

======================================

 

上記を入力した後に、操作ボタンの「Run」を実行すると...

[処理結果を表示]部分に以下のような結果が表示されます。

======================================

Vue.jsを使ってみる

値を表示:バナナ は 200円

HTML内で計算:バナナ は 216円

functionで計算:バナナ は 216円

======================================

 

動かしてみると、

HTMLの{{ }}で囲まれた部分にVueで設定した値が反映されたのが確認できたと思います。

Vueにデータを詰めるところに、サーバサイドからとってきたデータを設定することで

HTMLの構造には一切手を付けず、HTML結果を書き換える事ができるようになるということですね!

 

Vue.jsについてもう少し知りたい方は、以下のサイトを参照して下さい。

ガイド:https://vuejs.org/v2/guide/
API:https://vuejs.org/v2/api/

 

では、今回はここまで!