Vuejs-binding
VueJS-バインディング
この章では、VueJSで使用可能な v-bind と呼ばれるバインディングディレクティブを使用して、HTML属性の値を操作または割り当てる方法、スタイルを変更する方法、およびクラスを割り当てる方法を学習します。
データバインドにv-bindディレクティブを使用する必要がある理由とタイミングを理解するための例を考えてみましょう。
例
上記の例では、タイトル変数と3つのアンカーリンクを表示しています。 また、データオブジェクトからhrefに値を割り当てました。
これで、ブラウザで出力を確認して調べると、次のスクリーンショットに示すように、最初の2つのアンカーリンクにhrefが正しくないことがわかります。
最初のclickmeはhrefをhreflinkとして表示し、2番目のclickmeはそれを\ {\ {hreflink}}に表示し、最後のclickmeは必要に応じて正しいURLを表示します。
したがって、HTML属性に値を割り当てるには、次のようにディレクティブv-bindで値をバインドする必要があります。
VueJSは、次のようにv-bindの省略形も提供します。
ブラウザにinspect要素が表示される場合、アンカータグにはv-bind属性は表示されませんが、プレーンHTMLは表示されます。 DOMを検査すると、VueJSプロパティは表示されません。
HTMLクラスのバインド
HTMLクラスをバインドするには、 v-bind:class を使用する必要があります。 例について考えて、クラスをバインドしてみましょう。
例
v-bind:class =” \ {active:isactive}”で作成されたdivがあります。
ここで、 isactive はtrueまたはfalseに基づく変数です。 divにアクティブなクラスを適用します。 データオブジェクトでは、isactive変数をtrueとして割り当てています。 背景色が赤の .active スタイルで定義されたクラスがあります。
変数isactiveがtrueの場合、そうでない場合は色が適用されます。 以下は、ブラウザでの出力です。
上記の表示では、背景色が赤であることがわかります。 class =” active”がdivに適用されます。
次に、変数の値をfalseに変更して、出力を確認します。 次のコードに示すように、変数isactiveはfalseに変更されます。
上記の表示では、アクティブクラスがdivに適用されていないことがわかります。
v-bind属性を使用して、HTMLタグに複数のクラスを割り当てることもできます。
例
上記のコードのdivには、通常のクラス、例class =” info”を適用しました。 isActiveおよびhasError変数に基づいて、他のクラスがdivに適用されます。
出力
これは通常のクラスに適用されます。 両方の変数は現在偽です。 isActive 変数をtrueにして出力を見てみましょう。
上記の表示では、DOMで、divに割り当てられた2つのクラス、infoおよびactiveを確認できます。 hasError変数をtrueに、isActiveをfalseにしましょう。
さて、上の表示で見ると、infoとdisplayErrorクラスがdivに適用されています。 これは、条件に基づいて複数のクラスを適用する方法です。
クラスを配列として渡すこともできます。 これを理解するために例を挙げましょう。
例
出力
上記のように、両方のクラスがdivに適用されます。 変数を使用して、変数の値に基づいてクラスを割り当てましょう。
次のdivタグに示すように、2つの変数 isActive および haserror を使用しており、クラスバインディング中にdivに同じ変数が使用されています。
isActiveがtrueの場合、infoclassがそれに割り当てられます。 haserrorについても同様です。trueの場合、errorClassのみが適用されます。
ここで、haserror変数をtrueに、isActive変数をfalseにしましょう。
コンポーネントのクラスにv-bindを追加します。 次の例では、コンポーネントテンプレートとコンポーネントにクラスを追加しました。
例
以下はブラウザの出力です。 両方のクラスを最終divに適用します。
true/falseに基づいて、表示するコンポーネントセクションに変数を追加します。
変数はfalseであるため、アクティブクラスは適用されず、次のスクリーンショットに示すように情報クラスが適用されます。
インラインスタイルのバインド
オブジェクト構文
例
出力
上記の例では、divに対してスタイルが適用され、データオブジェクトからデータがフェッチされます。
また、すべての値を変数に割り当ててから、その変数をdivに割り当てることでも同じことができます。
例
色とfontSizeはstyleobjというオブジェクトに割り当てられ、同じものがdivに割り当てられます。
出力
フォーム入力バインディング
これまでに作成した例では、入力されたテキスト要素と割り当てられた変数にバインドされた値をバインドするv-modelを見てきました。 このセクションで詳しく説明します。
例
texboxに入力したものはすべて下に表示されます。 v-modelには値nameが割り当てられ、名前は\ {\ {name}}に表示され、テキストボックスに入力されたものがすべて表示されます。
出力
いくつかの例とその使用方法を確認してみましょう。
ラジオとセレクト
例
出力
修飾子
例では、トリム、数値、レイジーの3つの修飾子を使用しました。
例
出力
- 番号修飾子*では、数字のみを入力できます。 数字以外の入力は受け付けません。