Vue.jsの基本機能をまとめて説明。
dataオプション
dataオプションは、その名の通りデータを扱うオプション。
定義したデータは、テンプレート側(HTML)でマスタッシュ構文で展開することができる。
オブジェクトや配列も定義できる。
<div id="app">
  <p>{{message}}</p>
  <p>{{foods.apple}}</p>
  <p>{{drink[1]}}</p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
  new Vue({
    el: '#app',
    data: {
      message: 'Hello,World',
      foods: {
        tomato: 100,
        apple: 300,
        banana: 250
      },
      drink: ['Water', 'Coffee', 'Milk']
    }
  })
</script>v-bind:属性データバインディング
HTMLタグの属性バインディングには、属性の前に「v-bind:」を付与する。
<div id="app">
  <input type="text" v-bind:value="message">
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
  el: '#app',
  data: {
    message: 'Hello,World',
  }
})
</script>v-if:条件分岐
条件分岐をするときは、v-ifを使用する。
以下ように、displayプロパティをfalseにすると非表示に、trueにすると表示になる。
v-ifで表示・非表示する場合、CSS操作ではなく、DOMレベルで展開と削除がされる。
<div id="app">
  <p v-if="display">
    Hello,World
  </p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
  el: '#app',
  data: {
    display: false,
  }
})
</script>v-show:条件分岐
v-ifとは違い、表示・非表示をCSSのdisplayプロパティを操作して実現する。
<div id="app">
  <p v-show="display">
    Hello,World
  </p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
  el: '#app',
  data: {
    display: false,
  }
})
</script>v-for:繰り返し処理
v-forは、繰り返し処理ができる。
dataオプションに定義したオブジェクトや配列を表示できる。
<div id="app">
  <ul>
    <li v-for="(drink,index) in drinks">
      {{ index }}:{{ drink }}
    </li>
  </ul>
  <ol>
    <li v-for="(price,food) in foods">
      {{ food }}:{{price}}
    </li>
  </ol>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
  el: '#app',
  data: {
    drinks:['Water','Coffee','Milk'],
    foods: {
      tomato: 100,
      apple: 300,
      banana: 250
    }
  }
})
</script>v-on:イベント
v-onはイベント処理を設定できる。
以下は、ボタンを押すと表示される処理。
<div id="app">
  <button v-on:click="action">
    表示する!
  </button>
  <p v-if="display">
    表示されました!
  </p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
  el: '#app',
  data: {
    display: false
  },
  methods:{
      action:function(){
        this.display = !this.display
    }
  }
})
</script>v-model:双方向データバインディング
v-medelでは、dataオプションで定義した値とテンプレートで展開した値が、双方向に値が変更される。
<div id="app">
  <input type="text" v-model="message">
  <p>
    {{message}}
  </p>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
new Vue({
  el: '#app',
  data: {
    message: 'Hello,World'
  }
})
</script>まとめ
とりあえず、Vue.jsの基本機能は以上。
 
  
  
  
  
コメント