Vue.js で毎日学ぶ必要があるクラスとスタイル バインディング

高洛峰
リリース: 2017-01-12 11:50:47
オリジナル
1114 人が閲覧しました

データ バインディングの一般的な要件は、要素のクラス リストとそのインライン スタイルを操作することです。これらはすべて属性であるため、v-bind を使用してそれらを処理できます。式の最後の文字列を評価するだけで済みます。ただし、文字列の連結は面倒でエラーが発生しやすくなります。したがって、Vue.js は、クラスおよびスタイルとともに使用される場合に特に v-bind を強化します。文字列に加えて、式の結果の型はオブジェクトまたは配列にすることもできます。

HTML クラスのバインド

`{% raw %}class=”{{ className }}”{% endraw %}` など、Mustache タグを使用してクラスをバインドすることもできますが、この書き方はお勧めしません。と `v -bind:class` が混在しています。 2 つのうち 1 つしか選択できません。

オブジェクト構文

v-bind:class にオブジェクトを渡して、クラスを動的に切り替えることができます。 v-bind:class ディレクティブは通常のクラス属性と共存できることに注意してください:

<div class="static" v-bind:class="{ &#39;class-a&#39;: isA, &#39;class-b&#39;: isB }"></div>
 
data: {
 isA: true,
 isB: false
}
ログイン後にコピー

は次のようにレンダリングされます:

when isA and isB change に応じてクラスリストが更新されます。たとえば、isBがtrueになると、クラスリストは「static class-a class-b」になります。

データ内のオブジェクトを直接バインドすることもできます:

<div v-bind:class="classObject"></div>
 
data: {
 classObject: {
 &#39;class-a&#39;: true,
 &#39;class-b&#39;: false
 }
}
ログイン後にコピー

ここで、返されたオブジェクトの計算されたプロパティをバインドすることもできます。これは一般的に使用される強力なパターンです。

配列構文

配列を v-bind:class に渡してクラス リストを適用できます。

<div v-bind:class="[classA, classB]">
 
data: {
 classA: &#39;class-a&#39;,
 classB: &#39;class-b&#39;
}
ログイン後にコピー

次のようにレンダリングされます:

条件に基づいてリスト内のクラスを切り替えたい場合は、次の三項式を使用できます:

この例では常に classA が追加されますが、isB が true の場合にのみ classB が追加されます。

ただし、条件クラスが複数ある場合にこのように書くのは少し面倒です。 1.0.19 以降では、配列構文内でオブジェクト構文を使用できます:

bind inline Style

オブジェクト構文

v-bind: style のオブジェクト構文は非常に直感的です。CSS に非常によく似ていますが、実際には JavaScript オブジェクトです。 CSS プロパティ名は、キャメルケースまたはケバブケースで名前を付けることができます:

<div v-bind:style="{ color: activeColor, fontSize: fontSize + &#39;px&#39; }"></div>
 
data: {
 activeColor: &#39;red&#39;,
 fontSize: 30
}
ログイン後にコピー

テンプレートをわかりやすくするために、通常はスタイル オブジェクトに直接バインドすることをお勧めします:

<div v-bind:style="styleObject"></div>
 
data: {
 styleObject: {
 color: &#39;red&#39;,
 fontSize: &#39;13px&#39;
 }
}
ログイン後にコピー

同様に、オブジェクト構文は組み合わせて使用​​されることがよくあります。オブジェクトを返す計算されたプロパティを使用します。

配列構文

v-bind:style の配列構文は、複数のスタイル オブジェクトを 1 つの要素に適用できます:

自動的に追加されるプレフィックス

の場合v-bind:style は、transform などのベンダー プレフィックスを必要とする CSS プロパティを使用します。Vue.js は、対応するプレフィックスを自動的に検出して追加します。

以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。また、皆さんも PHP 中国語 Web サイトをサポートしていただければ幸いです。

Vue.js で毎日学習する必要があるクラスとスタイル バインディングに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート