【Vue.js】v-bindで条件によってclassを設定する
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、Vue.jsのv-bindで条件分岐の結果でclassを設定する方法をご紹介しています。
Vue.jsのv-bind:classで条件分岐の結果で出力するclassを変えたいんだけど、良い方法ないかな?
上記の疑問にお答えします。
本記事では下記バージョンのVue.jsで動作確認をしております。- Vue.js:v3.2.20
では、解説していきます。
三項演算子を使用する
v-bindは三項演算子の演算結果によって出力内容を制御することができます。三項演算子は下記のような構文を指し、左に指定した式の結果、true
であればtrue側の処理を、false
であればfalse側の処理を実行します。
bool ? true : false;
三項演算子は簡易的なif文のような使い方ができますので、上記を使用して、v-bindに条件を指定し、結果によってclass
を設定してみます。
v-bindで条件によってclassを設定する
data
に指定したnumber
の値によって出力するclass
を変更してみます。number
の値によってactive
もしくはpassive
のclass
が出力されるようにします。
HTML
<div id="app"> <p v-bind:class="[number > 3 ? 'active' : 'passive']">値 : {{ number }}</p> </div>
CSS
.active { background-color: blue; } .passive { background-color: red; }
JavaScript
const App = { data() { return { number: 5 } }, } Vue.createApp(App).mount('#app')
実行結果
See the Pen Untitled by ryohei (@intotheprogram) on CodePen.
number
には整数の5が代入されているため、三項演算子の実行結果はtrue
となり、active
のclass
が適用されています。三項演算子で条件によってclass
を設定することができていますね。
最後に
v-bindはclassだけではなく他の属性にも対応しています。条件によって~するという処理は、特に外観を構築する際によく使用する処理ですので、本記事の内容がお役に立てば幸いです。
以上、Vue.jsのv-bindで条件によってclassを設定する方法のご紹介でした!