folder-solid
スキル
clock
2021-04-14
Vue.js入門!エンジニアが解説するv-bind基礎

Vue.js入門!エンジニアが解説するv-bind基礎

目次
caret-up-solid

Vue.jsを初めて使う方に向けて今回はVue.jsで追加された独自のHTML記法について解説します

mustache タグ

script内で定義した変数、関数をHTMLを使用したい時にmustacheタグを実現できます

mustacheタグは {{}} をHTML上に記述すると使用できます。

以下のコードはdisplayTextをscript内で定義し、HTMLで呼び出しています。

実際に実行すると 文字列です。 と表示されます。

<template>
  {{displayText}}
</template>

<script>
export default {
  data() {
    return {
      displayText: '文字列です。'
    };
  },
};
</script>

これが最もシンプルな記法です。

上記例は文字列の変数ですがオブジェクト型の変数でも、もちろん使用できます。

<template>
  {{displayObj}}
</template>

<script>
export default {
  data() {
    return {
      displayObj: {
        text:'文字列です。'
      }
    };
  },
};
</script>

注意したいのは、上記コードを実行すると {text:'文字列です。'} と表示されます。

文字列です。 と表示したい場合は、displayObj.text と記述しましょう。

v-bind

今回の記事で最も大事なのはv-bindです。

v-bindは属性に対して動的な処理を簡単に加えられます

特にclassは動的に変えることでページに表現を大幅に加えられるのでよく使用します。

v-bindの基本的な使い方

以下のコードはactiveClassというクラスをisActiveの真偽値で適応するかどうか判定しています。

実際に実行すると文字が白い 文字列です。 が表示されます。

<template>
  <div v-bind:class="{ activeClass: isActive }">
    サンプルです。
  </div>
</template>

<script>
export default {
  data() {
    return {
      isActive: ture
    };
  },
};
</script>

<style lang="css">
  .activeClass {
    color: #fff;
  }
</style>

script内のコードでisActiveを定義し、HTMLのv-bind:class内で判定しています。

今回のコードはisActiveがtureになっているので、falseにすると黒文字で表示されます。

v-bindの省略記法

v-bindは省略記法ができます。

記述方法は : を属性の先頭に書くとv-bindが適応されます。


以下のコードはactiveClassというクラスをisActiveの真偽値で適応するかどうか判定しています。

実際に実行すると黒文字で 文字列です。 が表示されます。

なぜ黒文字なのかは、属性内の判定で ! のnot処理をしているからです。

<template>
  <div :class="{ activeClass: !isActive }">
    サンプルです。
  </div>
</template>

<script>
export default {
  data() {
    return {
      isActive: ture
    };
  },
};
</script>

<style lang="css">
  .activeClass {
    color: #fff;
  }
</style>

複数のv-bind

属性で2つ以上のv-bindをしたい場合、class内を配列で記述すると複数設定できます。


以下のコードはactiveClassとsampleClassの両方のクラスが適応されます。

実際に実行すると白文字で 文字列です。 が表示されます。

<template>
  <div :class="[{ activeClass: isActive } , { sampleClass: sampleNum === 1 }]">
    サンプルです。
  </div>
</template>

<script>
export default {
  data() {
    return {
      isActive: ture,
      sampleNum: 1
    };
  },
};
</script>

<style lang="css">
  .activeClass {
    color: #fff;
  }

  .sampleClass {
    width: 100%;
  }
</style>

classは他と同じで普通の判定処理ができるので、比較演算子が使用できます。

基本的にv-bindは全ての属性に適応できます。
しかし使用頻度が高いのはclass、style、srcです。

まとめ

今回はVue.jsのmustacheタグとv-bindを紹介しました。

Vue.jsの基礎中の基礎なのでしっかりマスターしましょう!

profile_icon
モレ
買ったものをレビューしたり、プログラミング・デザインの事について発信していきます。
twitter
twitter