要素にクラスを追加/削除することは、プロジェクト開発では非常に一般的な動作です。たとえば、Web サイトのナビゲーションでは、選択されたスタイルと選択されていないスタイルを区別するために、選択された項目にアクティブ クラスを追加します。ナビゲーションに加えて、この方法は選択と選択解除を処理するために他の多くの場所でも使用されます。 クラスの設定に加えて、プロジェクトでは要素のインライン スタイルを設定することがよくあります。jQuery の時代では、ほとんどの人がクラスの追加/削除を処理するために addClass と removeClass を組み合わせて使用し、要素のインライン スタイルを設定/取得するために css() メソッドを使用していました。 では、Vue ではこのような効果をどのように処理するのでしょうか? Vue では、v-bind ディレクティブを使用してクラスとスタイルをバインドできます。次に、それらをバインドするために Vue が提供するメソッドを確認しましょう。 オブジェクト構文バインディングクラスタブ ページの切り替えは、最も一般的なエフェクトの 1 つです。選択したタイトルを強調表示するにはどうすればよいでしょうか? 一般的な方法は、クラスを動的に切り替えることです。 <div id="アプリ"> <div class="ボタングループ"> <ボタン v-for="(タブ、インデックス) タブ内" v-bind:key="インデックス" v-bind:class="{active: currentTab === tab}" v-on:click="currentTab = タブ" >{{タブ}}</ボタン> </div> <コンポーネント v-bind:is="currentTabComponent"></コンポーネント> </div> <スクリプト> Vue.component("タブ1", { "template": "<p>これはタブ 1 です</p>" }); Vue.component("tab2", { "template": "<p>これはタブ 2 です</p>" }); Vue.component("tab3", { "template": "<p>これはタブ 3 です</p>" }); var vm = 新しい Vue({ el: "#app", データ: { 現在のタブ: "タブ1", タブ: ["tab1", "tab2", "tab3"] }, 計算: { 現在のタブコンポーネント() { this.currentTab を返します。 } } }); </スクリプト>
<ボタン クラス="btn" v-bind:class="{'btn-primary': isPrimary、アクティブ: isActive}" </ボタン> <スクリプト> var vm = 新しい Vue({ el: "#app", データ: { isPrimary: true、 アクティブ: true } }); </スクリプト> レンダリング結果は次のとおりです。 <button class="btn btn-primary アクティブ"></button> データオブジェクトを直接バインドすることもできます <button class="btn" v-bind:class="activePrimary"></button> <スクリプト> var vm = 新しい Vue({ el: "#app", データ: { アクティブプライマリ: { 'btn-primary': true、 アクティブ: 真 } } }); </スクリプト> レンダリング結果は上記と同じ <button class="btn btn-primary アクティブ"></button>
<button v-bind:class="activeClass"></button> <スクリプト> var vm = 新しい Vue({ el: "#app", データ: { アクティブ: true }, 計算: { アクティブクラス() { 戻る { アクティブ: this.isActive } } } }); </スクリプト> 配列構文バインディングクラス
<button class="btn" v-bind:class="[primary, active]"></button> <スクリプト> var vm = 新しい Vue({ el: "#app", データ: { プライマリ: 'btn-primary', アクティブ: 'btn-active' } }); </スクリプト>
//三項式 <button v-bind:class="[isActive ? active : '', primary]"></button> <スクリプト> var vm = 新しい Vue({ el: "#app", データ: { isActive: 真、 プライマリ: 'btn-primary', アクティブ: 'btn-active' } }); </スクリプト> //配列内でオブジェクト構文を使用する <button v-bind:class="[{active: isActive}, primary]"></button> <スクリプト> var vm = 新しい Vue({ el: "#app", データ: { isActive: 真、 プライマリ: 'btn-primary' } }); </スクリプト> オブジェクト構文バインディングスタイル
<div v-bind:style="{color: colorStyle, backgroundColor: background}"> オブジェクト構文 <スクリプト> var vm = 新しい Vue({ el: "#app", データ: { カラースタイル: '赤'、 背景: '青' } }); </スクリプト> クラスと同様に、データ オブジェクトを使用してバインドすることもできます。 <div v-bind:style="style">オブジェクト構文</div> <スクリプト> var vm = 新しい Vue({ el: "#app", データ: { スタイル: { 色: '赤'、 背景色: '青' } } }); </スクリプト> 配列構文バインディングスタイル
<div v-bind:style="[style, fontStyle]">オブジェクト構文</div> <スクリプト> var vm = 新しい Vue({ el: "#app", データ: { スタイル: { 色: '赤'、 背景色: '青' }, フォントスタイル: { フォントサイズ: '18px' } } }); </スクリプト> これで、Vue でクラスとスタイルを使用して v-bind バインディングを使用するいくつかの方法について説明したこの記事は終了です。Vue v-bind バインディングの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援してください。 以下もご興味があるかもしれません:
|
>>: MySQL 8.0.12 のインストールと設定のグラフィックチュートリアル
Django Web開発の過程で、HTMLを書く際にバックエンドから同じ名前のリスト変数が渡されるが...
目次質問: 1. 最初の試み2. 合理的な分析3. 問題解決(1) pthread_join()の使...
この記事では、ログイン認証コードを実装するためのvue+springbootの具体的なコードを例とし...
目次docker-compose.ymlを書くdocker-composeを実行するビルドステータス...
はじめに: 最近 Hadoop プラットフォームの構築を勉強し始めたので、ローカルマシンに VMwa...
背景: 開発プロセスでは、現在の月、現在の日、現在の時間、今後数日など、時間を判断条件としてデータを...
目次バックグラウンドで10,000個のデータが失われた再帰法非再帰的方法要約するバックグラウンドで1...
スクリプトを書く目的は、さまざまなサービスを手動で起動しなくて済むようにすることです(怠惰のためでも...
目次1. イベントとは何ですか? 2. イベントの使い方3. バインドタップとキャッチタップの違い4...
MySQL 外部キー制約の無効化と有効化: MySQL 外部キー制約が有効になっているかどうかは、グ...
目次MySQL インデックス最適化ページングの調査ケース1ケース2 MySQL インデックス最適化ペ...
目次1. isPrototypeOf()例 1、オブジェクト クラス インスタンス:例 2: Hum...
明らかな HTML、隠された「公開スクリプト」 Web ページのダウンロード時間を短縮する鍵は、フ...
イメージを構築するこれまで、テストやデモンストレーションにさまざまなイメージを使用しました。多くの場...
NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は...