webmanab.html

menu

これから始める Vue.js をさらに理解 -『Vue.js』

 

demo

toc

  1. 値を保存しておく場所 data
    1. イベントとコンポーネント関数
      1. _dataの書き換え
    2. 条件分岐 v-if

      コンポーネントに関数やイベントを定義していくことで、より実践的なUIを実装します。

      値を保存しておく場所 data

      コンポーネントの属性値を保存するのは propsでしたが、親コンポーネントから受け渡される値を保存するという役割でした。自コンポーネント内でやり取りする値は、data に定義します。

      data はオブジェクトを return する function です。 return されたオブジェクトに値を保存していきます。


      let root = new Vue({ data: () => { return { mydata: true } } });

      イベントとコンポーネント関数

      Vue.jsでは、テンプレート内でイベント属性のような書きかたで、イベントの処理を記述します。クリックイベントでは @click 属性を使います。コンポーネント内で利用する関数は methods に定義します。

      dataの書き換え

      コンポーネントの methodsの関数内は、そのコンポーネントの data への参照が可能です。this.$dataというプロパティからアクセスすることができます。


      let root = new Vue({ data: () => { return { number: 0 } }, template: '<div>' +  '<p>{{ number }}</p>' + '<button type="button" @click="counter( 1 )">+</button>' + '<button type="button" @click="counter( -1 )">-</button>' + '</div>', methods: { counter: function ( value ) { this.$data.number += value; } } }); root.$mount( '#app' );

      イベントのいろいろな書き方

      • @mouseover
      • @mousemove
      • @focus
      • @blur

      条件分岐 v-if

      テンプレート内で条件分岐を行うためには、v-ifという専用の属性を使います。条件を満たす場合にのみ、対象の要素が出力されるようになります。


      let root = new Vue({ data: () => { return { number: 0 } }, template: `<div>  <p>{{ number }}</p> <button type="button" @click="counter( 1 )">+</button> <button type="button" @click="counter( -1 )">-</button> <p v-if="number >= 1">正</p> <p v-if="number <= -1">負</p> </div>`, methods: { counter: function ( value ) { this.$data.number += value; } } }); root.$mount( '#app' );

      おわります。

      これから始める Vue.js をさらに理解 -『Vue.js』

      share

      tip