クラスバイディングを利用すれば、データに応じて色を変えたり表示を変えたりできます。
今回は、ボタンを押すと文字の色が変わるサンプルコードを実装していきます。
実際のサンプルはこちら
サンプルコード
<template>
    <div class="class-binding">
        <div :class="{ active: isActive }">文字の色が変わります!</div>
        <button @click="changeActive">色をチェンジ</button>
    </div>
</template>
<script>
export default {
    data(){
        return{
            isActive: true
        }
    },
    methods:{
        changeActive(){
            this.isActive = !this.isActive
        }
    }
}
</script>
<style scoped>
.active{
    color: red;
}
</style>
解説
<div :class="{ active: isActive }">文字の色が変わります!</div>
:classがクラスバインディングです。classをバインディングすることで、
activeの値(今回ならtrueかfalse)によってcssのクラスをつけることができます。
よく見てみると、
        return{
            isActive: true
        }
isActiveのtrueとfalseで変更できるようにしていますね。
<button @click="changeActive">色をチェンジ</button>
@clickでchangeActiveメソッドを呼び出しています。
    methods:{
        changeActive(){
            this.isActive = !this.isActive
        }
    }
changeActive()で、isActiveをtrueとfalseに変更させています。
.active{
    color: red;
}
isActiveがtrueの時、上記のCSSが適用されて、文字が赤くなります。
以上です。
クラスバイディングは、例えばチャットアプリでコメントする人ごとに色とかメッセージの配置を変えたいときなどに簡単に変えることができますし、使える幅は広いです。
ぜひ覚えてみてください。
  
  
  
  

コメント