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

推薦する

入力のid属性とname属性の違いの例

長い間ウェブサイトを作ってきましたが、入力時のnameとidの違いがまだわかりません。最近jQuer...

Vue.jsの機能コンポーネントに関する包括的な理解

目次序文React 関数コンポーネントVue (2.x) の機能コンポーネント🌰 例: el-tab...

MYSQLの主キー制約とユニーク制約の違いについて簡単に説明します。

目次主キー制約ユニーク制約主キー制約PRIMARY KRY 主キーは一意です。テーブルには主キーを ...

Dockerコンテナの起動失敗を解決する方法

質問: コンピュータを再起動した後、docker の mysql コンテナを再起動できません。原因が...

Ubuntu 18.04 は pyenv、pyenv-virtualenv、virtualenv、Numpy、SciPy、Pillow、Matplotlib をインストールします

1. 現在、Pythonのバージョン管理ツールは数多く存在します。その中でも比較的使いやすいのがPy...

mysql update文の実行プロセスの詳細な説明

以前、MySQL クエリ文の実行プロセスについての記事がありました。ここでは、更新文の実行プロセスを...

Vueを使い始める際に習得する必要がある知識について簡単に説明します

最も人気のあるフロントエンド フレームワークの 1 つとして、Vue は多くのフロントエンド開発エン...

Deepin Linuxでカーネルを手動でアップグレードする方法

deepinとUbuntuどちらもdebianをベースにしたディストリビューションであり、ここではU...

CSS3 で背景ぼかしを実現する 3 つの方法 (要約)

1. 通常の背景ぼかしコード: <スタイル> html, 体 { 幅: 100%; 高...

Linux 上で Docker コンテナを作成、一覧表示、削除する方法の概要

1. Dockerコンテナを起動する以下のコマンドを使用して新しい Docker コンテナを起動しま...

Mac+IDEA+Tomcat の設定手順

目次1. ダウンロード2. インストールと解凍3. Tomcatを起動する4番目に、インストールが成...

Nexusプライベートサーバー構築原理とチュートリアル分析

1つ。 Nexus プライベート サーバーを構築する理由は何ですか?社内の開発メンバーは全員外部ネッ...

...

MySQL における一般的なランキングの問題をいくつかまとめます

序文:一部のアプリケーション シナリオでは、成績や年齢によるランキングなど、ランキングの問題が発生す...

XHTML 3つの文書型宣言

XHTML は 3 つのドキュメント タイプ宣言を定義します。最もよく使用されるのは XHTML T...