Vue で動的なスタイルを実現するためのさまざまな方法のまとめ

Vue で動的なスタイルを実現するためのさまざまな方法のまとめ

1. 三項演算子の判定

<text :style="{color:state?'#ff9933':'#ff0000'}">こんにちは世界</te​​xt>
<スクリプト>
エクスポートデフォルト{
	データ() {
		戻る {
			状態: 真
		}
	}
}
</スクリプト>

2. 動的に設定されるクラス

2.1 主な用途: ループリストをクリックすると、対応する要素が強調表示されます。(デフォルトでは最初の要素が強調表示されます)

<テンプレート>
	<div class="wrapper" v-for="(item,index) in houseList" :key="index" @click="rightTap(index)">
		<div class="houseTitle" :class="{'active' : index === rightIndex}">
			{{item.name}}
		</div>
	</div>
</テンプレート>
<スクリプト>
エクスポートデフォルト{
	データ() {
		戻る {
			右インデックス:0,
			ハウスリスト:[]
		};
	},
	方法:{
		右タップ(インデックス){ 
			this.rightIndex = インデックス
		}
	}
}
</スクリプト>
<style lang="scss" スコープ>
.ラッパー{
	幅: 118ピクセル;
	高さ: 60px;
	マージン: 6px 自動 0 自動;
	.houseタイトル{
		フォントサイズ: 22px;
		テキスト配置: 中央;
		空白: ラップなし;
		オーバーフロー: 非表示;
		テキストオーバーフロー: 省略記号;
	}
	。アクティブ{
		色:#2a7ff​​a;
		 背景色: ピンク;
	}
}
</スタイル>

2.2 主な用途: 特定の値に対応するスタイルを設定する。

  <div 
    :class="activeId === item.id?'activeStyle':'machineBar'" 
    v-for="(item,index) in List" :key="index" @click="clickEvent">    
      <p>{{アイテム名}}</p>    
  </div>

3. 方法判定

3.1 主な用途: 異なるデータ値に対応するスタイルを設定する。

<テンプレート>
  <div v-for="(item,index) in houseList" :key="index">             
     <div :style="getStyle(item.status)">{{item.name}}</div>    
  </div> 
</テンプレート>
<スクリプト>
エクスポートデフォルト{ 
  データ(){
    戻る {
	  ハウスリスト:[
        { 
          id:1,
          名前:1,
          ステータス:'a'
        },{
          id:2,
          名前:2,
          ステータス: 'b'
        },{
          id:3,
          名前:3,
          ステータス: 'c'
        }
      ]
    }
  },
  方法:{
    getStyle(e){        
      console.log('値',e)        
      e === 'a'の場合{            
        戻る {                
          幅:'60px',
          高さ:'60px',                
          背景: '黄色',                 
          マージン: '10px 自動'             
        }        
      }そうでない場合(e === 'b'){            
        戻る {                
          幅:'60px',
          高さ:'60px',                  
          背景: '赤'、                 
          マージン: '10px 自動'            
        }        
      }そうでない場合(e === 'c'){            
        戻る {                
          幅:'60px',
          高さ:'60px',                 
          背景: 'ピンク',                 
          マージン: '10px 自動'             
        }        
      }
    }
  }
}
</スクリプト>

3.2 主な用途: 複数の要素イベントで対応するスタイルを表示する。

<テンプレート>
  <div 
      class="homeWrap" :class="{'select': 選択 === 1,'click': クリック === 1}" 
      @click="handleClick(1)" @mousedown="menuOnSelect(1)">
     ホームページ   
</テンプレート>
<スクリプト>
エクスポートデフォルト{
  戻る {
      選択: 0,
      クリック数: 0
  }
  方法:{
    menuOnSelect(値){
      this.selected = 値;
    },
    ハンドルクリック(値){
      選択 = 0
      this.clicked = 値
    }
  }
 }
</スクリプト>
<style lang="stylus" スコープ>
  .homeWrap.select 
    背景赤
  .homeWrap.クリック 
    背景黄色
</スタイル>

4. 配列バインディング

<div :class="[isActive,isSort]"></div>
// 配列を三項演算子と組み合わせて必要なクラスを決定します
<div class="item" :class="[item.name? 'lg':'sm']"></div>
<div class="item" :class="[item.age<18? 'gray':'']"></div>
// <div :class="[{ active: isActive }, 'sort']"></div> と結合された配列オブジェクト

データ() {
  戻る {
    isActive:'アクティブ'、
    isSort:'ソート'
 }
}
// css
。アクティブ{
    /*ここで設定する必要がある最初のスタイルを記述します*/
  } 
。選別{
    /*ここで設定する必要がある2番目のスタイルを記述します*/
  }

5. es6オブジェクトと組み合わせた計算プロパティ名メソッド

 <div :class="classObject"></div>
 
  エクスポートデフォルト{
    データ(){
      戻る {
        アクティブ:true
      }
    },
    計算:{
      クラスオブジェクト() {
        戻る {
          class_a:this.isActive、
          class_b:!this.isActive
        // これは、独自のプロジェクトの状況に応じて変更して入力する必要があります}
      }
    }
  }
 
// css
.class_a{
    /*ここで設定する必要がある最初のスタイルを記述します*/
}
 
.class_b{
   /*ここで設定する必要がある2番目のスタイルを記述します*/
 }

上記は、Vue で動的なスタイルを実現するためのさまざまな方法の詳細な内容です。Vue で動的なスタイルを実現する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Vue でクラスとスタイルを動的にバインドするメソッドコードの詳細な説明
  • Vue.js スタイルの動的バインディング実装の概要
  • Vueは条件判断と動的バインディングスタイルのメソッドを実装します
  • Vueでスタイルを動的にバインドする方法

<<:  Linux リモート コントロール Windows システム プログラム (3 つの方法)

>>:  魔法のMySQLデッドロックトラブルシューティング記録

推薦する

Dockerデータ管理とネットワーク通信の使用

Docker をインストールし、Docker コアとインストールを通じて簡単な操作を実行できます。 ...

InnoDB エンジンのパフォーマンスを最適化するための my.cnf パラメータ構成

私はインターネット上で数え切れないほどの my.cnf 構成を読みましたが、言及されている構成のほと...

Windows での MySQL 5.7.20 のインストールと設定方法のグラフィック チュートリアル

参考までにWindowsにMySQLをインストールします。具体的な内容は次のとおりです。 1.まずM...

TypeScript 開発のための 6 つの実用的なヒント

目次1. 開発前にエンティティの種類を決定する2. インターフェースをリクエストするときは、使用する...

innerHTML アプリケーション

ブランクのブログ: http://www.planabc.net/ innerHTML プロパティは...

MySQLの一般クエリログとスロークエリログの分析

MySQL のログには、エラー ログ、バイナリ ログ、一般クエリ ログ、スロー クエリ ログなどが含...

Linuxで現在のスクリプトの実際のパスを取得する方法

1. 現在のスクリプトの実際のパスを取得します。 #!/bin/bash if [[ $0 =~ ^...

Centos7 FFmpeg オーディオ/ビデオ ツールのインストールに関する簡単なドキュメント

ffmpeg は非常に強力なオーディオおよびビデオ処理ツールです。公式 Web サイトは http:...

MySql データベースのサブクエリと高度なアプリケーションの簡単な分析

MySql データベースのサブクエリ:サブクエリ: 選択クエリ ステートメント内に別の選択ステートメ...

JavaScript ベースのシンプルなカルーセルの実装

この記事では、シンプルなカルーセルを実装するためのJavaScriptの具体的なコードを参考までに紹...

HTMLでマスクレイヤーを実装する方法 HTMLでマスクレイヤーを使用する方法

Web ページでマスク レイヤーを使用すると、繰り返しの操作を防ぎ、読み込みを促進できます。また、ポ...

JavaScript 日付ツールの概要

ユーティリティ = { /** * 死亡年ですか? * @return {Boolse} true...

MySQL 学習: データベース テーブルの 5 つの主要な制約を初心者向けに詳しく説明します

目次1. 制約の概念と分類2. 5つの制約の追加と削除2.1 制約を追加する6つの方法2.2 制約を...

MySqlエスケープの詳細な使用例

MySQL エスケープエスケープとは、エスケープ文字の本来の意味を意味します。エスケープ文字の目的は...

MySQL ステートメントの概要

目次1. データベースの使用を選択2. 情報を表示する3. テーブルを作成する4. データを挿入する...