Vue スキャフォールディングでのレンダリングを理解する

Vue スキャフォールディングでのレンダリングを理解する

Vue スキャフォールディングでは、エントリ ファイル main.js の新しい Vue コードに、コード レンダリング h=>h(App); があることがわかります。

ここに画像の説明を挿入

このコードは、Vueを使用するときに通常使用するコードとは異なります。一般的なVueコードを記述します。

	「../Acomponent」からAcomponentをインポートします。
	vm = 新しいVue({
		el:"#アプリ"
		データ(){
			戻る {
				a:"ああ",
				b:"bbb"
			}
		},
		テンプレート:`<div>
			<span>これはテストです</span>
			<コンポーネント></コンポーネント>
		</div>`,
		コンポーネント:{
			コンポーネント
		}
	})

上記のコードは、私たちが普通に理解できるコードです。テンプレートがあり、テンプレート内に他のコンポーネントを導入することができます。しかし、なぜスキャフォールディングに render メソッドがあるのでしょうか?

私たち自身のアイデアによれば、スキャフォールディングコードを変更して、

ここに画像の説明を挿入

スキャフォールディングを開始し、npm run serve を実行して結果を確認します。エラーが報告されます。情報は次のとおりです。

ここに画像の説明を挿入

したがって、スキャフォールディングによって導入された Vue は、テンプレート パーサーのない Vue であると言えます。テンプレートを解析する場合は、render 関数を使用してプロジェクトの node_modules フォルダーに移動し、導入された Vue を確認する必要があります。

'vue' から Vue をインポートします

ここに画像の説明を挿入

vue/distファイルを開くと、図に示すように多くのファイルが表示されます。

ここに画像の説明を挿入


エラーメッセージには、解決方法が 2 つあると表示されています。1 つは完全な vue.js を導入すること、もう 1 つは render を使用することです。
フルバージョンをインポートして、問題が解決するかどうかを確認しましょう。

ここに画像の説明を挿入

2番目を見てみましょう。テンプレートパーサーなしで、renderを使ってVueを導入します。
まずはレンダリングについて話しましょう
Render は、ノードを作成するために使用される 1 つのパラメータを持つ関数です。

ここに画像の説明を挿入
ここに画像の説明を挿入

console.logから、パラメータcreateElementも関数であり、VNodeオブジェクトを作成することがわかります。

ここに画像の説明を挿入

次に矢印関数を使ってレンダリングを簡素化します

	レンダリング(要素を作成){
		createElement("h1","123") を返します。
	}
	//矢印関数を使用してレンダリングを簡素化します:(createElement)=>{return createElement("h1","123")}
	// 矢印関数にはパラメータが 1 つしかないので、括弧を書く必要はありません。メソッド本体が 1 行しかない場合は、中括弧を書く必要はなく、戻り値に return を書く必要もありません。
	//上記のコードは次のように簡略化できます:createElemnet=>crementElement("h1","123")
	//同様に、createElement は元々カスタマイズされており、名前を変更することもできます render: h=>h("h1","123")
	// これはスキャフォールディングのコードと非常によく似ています。h 関数では、ネイティブ HTML タグの場合はこのように記述します。Vue コンポーネントの場合は、直接渡すことができます。必要なのは render:h=>h(App) だけです。

レンダリングの書き方はこうだ

スキャフォールディングが不完全な Vue を導入して使用する理由についてお話ししましょう。Vue コードが完成したらパッケージ化する必要があり、Vue のコア コードは不可欠であることがわかっています。パッケージ化した後は、テンプレートを再度解析する必要はありません。すると、Vue のコア コード内のテンプレート パーサーはまったく必要ありません。そのため、コードのサイズを縮小するために、Vue はテンプレート パーサーを削除しましたが、開発時に再度使用する必要があるため、テンプレートを解析するためのレンダリング メソッドを作成します。
つまり、パッケージ化されたコードをできるだけ小さくすることが目的です。

これで、Vue スキャフォールディングでのレンダリングの理解に関するこの記事は終了です。Vue レンダリングの理解に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Vueのレンダリング方法renderとtemplateの違い
  • Vue のレンダリング関数の使い方の詳細な説明
  • Vue.jsのレンダリング方法の詳しい説明
  • Vueフレームワークのレンダリングメソッドでテンプレートを置き換える方法

<<:  HTML 5のドラフトは正式な標準にはならなかった

>>:  VPSサーバーでよく使われるパフォーマンステストスクリプトの概要

推薦する

MySQL インデックスの一般的な問題の概要

Q1: データベースにはどのようなインデックスがありますか?メリットとデメリットは何ですか? 1. ...

Alibaba Cloud CentOS 7 に MySQL 8.0.13 をインストールする方法

1. MySQL インストール パッケージをダウンロードします(ここにはコツがあります。おそらく、こ...

mysql 8.0.18.zip のインストールと構成方法のグラフィック チュートリアル (Windows 64 ビット)

以前にインストールされたバージョンのデータベースをアンインストールする方法については、この記事を参照...

CSS で div にスクロールを追加し、スクロール バーを非表示にする

CSS は div にスクロールを追加し、スクロール バーを非表示にします。具体的なコードは次のとお...

MySQL IDは1から増加し始め、不連続IDの問題を素早く解決します

mysql idは1から始まり、不連続なidの問題を解決するために自動的に増加します。強迫性障害の私...

MySQL 1130例外、リモートログインできない解決策

目次質問: 1. リモートログイン権限を有効にする: 2. MySQLの権限を更新します。 3. テ...

Mysql8.0はソート問題を解決するためにウィンドウ関数を使用する

MySQL ウィンドウ関数の紹介MySQL は MySQL 8.0 以降、ウィンドウ関数をサポートし...

古典的なJavaScriptの再帰ケースの質問の詳細な分析

目次再帰とは何ですか?また、どのように機能しますか? 1. 合計(1)デジタル加算(2)配列の和2....

CocosCreator Typescriptでテトリスゲームを作る

目次1. はじめに2. 解決すべきいくつかの重要な問題3.最後に書く1. はじめに最近、Cocos ...

JavaScript setinterval 1秒遅延ソリューション

setinterval を使用すると、ページを開いた直後に 1 秒の遅延後に実行されることがわかりま...

Quickjs は JavaScript サンドボックスの詳細をカプセル化します

目次1. シナリオ2. 基盤となるAPIを簡素化する2.1 自動的に破棄を呼び出す2.2 VM値を作...

RoughViz を使用して Vue.js でスケッチされたチャートを視覚化する方法

導入チャートは、データ セットを読みやすくし、その各部分を区別しやすくするために使用されるデータのグ...

Windows システムでの MySQL 8.0.21 インストール チュートリアル (図とテキスト)

インストールの提案: インストールには .exe を使用せず、圧縮パッケージを使用してください。これ...

MySQL DDL による同期遅延を解決する方法

目次序文解決ツールの紹介仕組み使用制限使用上の注意使用例いくつかのパラメータの説明出力例Tencen...

Zabbix は DingTalk のアラーム機能を画像付きで設定します

実装のアイデア:まず、アラーム情報にはitemidが必要です。これは前提条件です。情報に渡されるパラ...