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 で中国語を入力すると文字化けするバグ

推薦する

vueプロジェクトは特定の領域に透かしを描くことを実現する

この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...

CocosCreator ScrollView 最適化シリーズ: フレーム読み込み

目次1. はじめに2. 行き詰まった問題の分析3. 解決策(理論) 4. ソリューション(コード) ...

Mysqlはフィールドスプライシングのための3つの関数を実装している

データをオペレーションにエクスポートする場合、フィールドの結合は避けられません。MySQL でこれが...

nginxとバックエンドポート間の競合の解決策

質問: Alice 管理システムを開発しているときに、すべてのバックエンド インターフェイスが最初の...

Linuxの基本コマンドmktempの詳しい説明

mptemp は安全な方法で一時ファイルまたはディレクトリを作成します。このコマンドの適用範囲: R...

Dockerデータストレージのバインドマウントの詳細な説明

この記事を読む前に、Volumes について予備知識を身に付けておいてください。詳細については、こち...

ウェブデザインにおける2種類のタブアプリケーション

現在、Web デザインではタブが広く使用されていますが、一般的に次の 2 つのタイプに分けられます。...

MySQL スレーブ ライブラリ Seconds_Behind_Master 遅延の概要

目次MySQL スレーブ ライブラリ Seconds_Behind_Master 遅延の概要1. 遅...

Vue3とVue2の利点のまとめ

目次1. なぜ vue3 が必要なのでしょうか? 2. vue3の利点3. 応答原則の違い4. ライ...

Centos8 で yum を使用して rabbitmq をインストールするチュートリアル

/etc/yum.repos.d/フォルダに入るrabbitmq-erlang.repo ファイルを...

MySQL マルチテーブル結合クエリの詳細な説明

目次複数テーブル結合クエリ内部結合左結合右結合サブクエリ要約する複数テーブル結合クエリテーブル間の接...

MySql 共通クエリコマンド操作リスト

MYSQL でよく使用されるクエリ コマンド: mysql> select version()...

Linux で MySQL をインストールして設定する

システム: Ubuntu 16.04LTS 1\公式サイトからmysql-5.7.18-linux-...

5分でDockerを使ってRedisのクラスターモードとセンチネルモードを構築する方法を教えます

目次1. 準備Redisイメージを取得する2. Redis Sentinel マスタースレーブモード...

nginx を使用して静的リソース サーバーを構築する方法

Windows を例にとると、Linux も実際には同じです。静的リソースサーバーを構築するパソコン...