Vueのリストレンダリングの詳細な説明

Vueのリストレンダリングの詳細な説明

1. v-for: 配列の内容を走査する(よく使われる)

inはofに置き換えることもできる

<本文>
	<div id="div1">
		<li v-for='(p,i) 人' :key=i>
			{{p.name}}--{{p.age}}
			<!-- 張--18
				 リー--19
				 劉--17 -->
		</li>
	</div>
</本文>
<script type="text/javascript">
	Vue.config.productionTps = false です
 	新しいVue({
		el:"#div1",
		データ:{
			人数:
				{id:'001',name:"张",age:18},
				{id:'002',name:"李",age:19},
				{id:'002',名前:"劉",年齢:17},
			]
		}
	})
</スクリプト>

2. v-for: オブジェクトのプロパティをトラバースする(よく使われる)

<本文>
	<div id="div1">
		<li v-for='(p,k) 人' :key=k>
			{{p}}--{{i}}
			<!-- 張--名前
				 18歳 -->
		</li>
	</div>
</本文>
<script type="text/javascript">
	Vue.config.productionTps = false です
 	新しいVue({
		el:"#div1",
		データ:{
			人数:
				名前:"张",
				年齢:18
			}
		}
	})

3. 文字列のトラバース(一般的ではない)

<本文>
	<div id="div1">
		<li v-for='(p,i) in str' :key=i>
			{{p}}--{{i}}
			<!-- a--0 
				 b--1
				 c--2
				 d--3
				 e--4 -->
		</li>
	</div>
</本文>
<script type="text/javascript">
	Vue.config.productionTps = false です
 	新しいVue({
		el:"#div1",
		データ:{
			文字列:"abcde"
		}
	})
</スクリプト>

4. 指定された回数だけトラバースする(あまり使用されない)

<本文>
	<div id="div1">
		<li v-for='(p,i) 5' :key=i>
			{{p}}--{{i}}
			<!-- 1--0
				 2--1
				 3--2
				 4--3
				 5--4 -->
		</li>
	</div>
</本文>

5. キーの機能と原理

上記ではインデックスをキーとして使用していますが、DOM を乱れた順序で変更したり、入力コンテンツがある場合にはエラーが発生します。インデックスは、ページを変更せずにページをレンダリングする場合にのみキーとして使用できます。

ID、携帯電話番号、メールアドレスなどのデータの一意の識別子をキーとして使用することを強くお勧めします。

1. 仮想DOMにおけるキーの役割:

key は仮想 DOM オブジェクトの識別子です。データが変更されると、Vue は新しいデータに基づいて新しい仮想 DOM を生成します。次に、Vue は新しい仮想 DOM と古い仮想 DOM の違いを比較します。比較ルールは次のとおりです。

2. 比較ルール:

(1)新しい仮想DOMと同じキーが古い仮想DOMに見つかります。

①. 仮想DOMの内容が変更されていない場合は、以前の実DOMをそのまま使用します。

②. 仮想DOMの内容が変更されると、新しい実DOMが生成され、ページ内の以前の実DOMが置き換えられます。

(2)新しい仮想DOMと同じキーが古い仮想DOM内に見つからない場合は、新しい実DOMが作成され、ページにレンダリングされます。

3. インデックスをキーとして使用する場合に発生する可能性のある問題:

1. データが逆の順序で追加または削除され、順序が崩れた場合:

不要な実際の DOM 更新が生成されます ==> インターフェース効果は良好ですが、効率は低くなります。

2. 構造に入力クラスの DOM も含まれている場合:

間違った DOM 更新が発生します ==> インターフェイスに問題があります。

4. 開発中にキーを選択するにはどうすればいいですか?

1. ID、携帯電話番号、ID番号、学生番号、その他の一意の値など、各データの一意の識別子をキーとして使用するのが最適です。

2. 逆順でデータを追加または削除するなど、順序を破壊する操作がなく、リストが表示用にのみレンダリングされる場合は、インデックスをキーとして使用しても問題ありません。

要約する

この記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS.COM のその他のコンテンツにも注目していただければ幸いです。

以下もご興味があるかもしれません:
  • Vue の条件付きレンダリングとリストレンダリングの詳細な理解
  • Vue.js の条件付きレンダリング命令の簡単な分析
  • Vue 条件付きレンダリング v-if と v-show
  • Vue 基本チュートリアル: 条件付きレンダリングとリストレンダリング
  • vue の v-for ディレクティブはリストのレンダリングを完了します
  • Vue リストのレンダリング、並べ替え、フィルタリングの詳細な説明
  • Vue 条件付きレンダリングとリストレンダリング

<<:  CSS スタイルを使用して表のフォントを垂直中央に配置する方法

>>:  Flex プログラム Firefox で中国語を入力すると文字化けするバグ

推薦する

C++ を使用して MySQL に接続する方法

C++でMySQLに接続する際の参考情報です。具体的な内容は以下のとおりです。 MySQLCon ク...

docker で Apollo をデプロイする詳細なチュートリアル

1. はじめにここでは apollo について詳しく説明しません。公式サイト https://git...

このリファレンスとJavaScriptのカスタムプロパティの詳細な説明

目次1. このキーワード2. カスタム属性3. 包括的なケース1:タブの実装付録要約する1. このキ...

MySQL の全体的なアーキテクチャの紹介

MySQL の全体的なアーキテクチャは、サーバー層とストレージ エンジン層に分かれています。サーバー...

Docker Compose で利用可能な環境変数の詳細な説明

Compose のいくつかの部分は、何らかの方法で環境変数を扱います。このチュートリアルは、必要な情...

Nginx 正規表現関連のパラメータとルールの紹介

序文最近、私はクライアントのサーバー構成を支援しており、Nginx 構成ファイルを頻繁に変更していま...

MySQLクエリインターセプトの詳細な分析

目次1. クエリの最適化1. MySQLチューニングの概要2. 小さなテーブルが大きなテーブルを動か...

HTML テーブル マークアップ チュートリアル (43): テーブル ヘッダーの VALIGN 属性

垂直方向では、ヘッダーの配置を上、中央、下に設定できます。基本的な構文構文Top は上、Middle...

MySQL のタイムスタンプと日付時刻のタイムゾーンの問題によって生じる DTS の落とし穴の詳細な説明

目次MySQL で現在の時刻を表現するにはどうすればよいでしょうか?結論は確認するピットMySQL ...

中国のウェブサイトユーザーエクスペリエンスランキング

<br />ユーザーエクスペリエンスは中国のウェブサイトでますます重視されており、ユーザ...

Vueのキーボードイベントの詳細な説明

目次共通キーエイリアスエイリアスが指定されていないキーシステム修飾キーカスタムキーエイリアス要約する...

JavaScript の構造化代入の一般的なシナリオと例 5 つ

目次序文1. データを抽出する2. エイリアス値3. 動的プロパティ4. オブジェクトの分解における...

Docker+daocloudはフロントエンドプロジェクトの自動構築とデプロイを実現します

自動プロジェクト展開は大企業やユニコーン企業でよく使用され、手動でプロジェクトを展開するよりも効率的...

JavaScript の基礎におけるデータ型の詳細な説明

目次1. データ型1.1 なぜデータ型が必要なのか? 1.2 変数のデータ型1.3 データ型の分類2...

htm 初心者ノート(初心者は必ず読んでください)

1. HTMLとは何かHTML (ハイパーテキスト マークアップ言語): ハイパーテキスト マーク...