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サーバーでよく使われるパフォーマンステストスクリプトの概要

推薦する

空のパスがページのパフォーマンスに与える影響に対する解決策

数日前、Google Reader で Yu Bo さんが共有した投稿「空のパスがページのパフォーマ...

ウェブデザインにおけるカラーマッチングの優れた例30選

本日は、色彩の応用に関する優れた事例を 30 件集めて、皆さんにご紹介したいと思います。これらの事例...

Dockerfile 内の予約語命令の解析処理

目次1. Dockerfile とは何ですか? 2. Dockerfile構築プロセスの分析3. D...

TypeScript 学習ノート: 型の絞り込み

目次序文型推論真理値の絞り込み平等の縮小演算子の絞り込みインスタンスの絞り込み狭まりの本質ユニオン型...

MySQL の一般的なログの概要

序文: MySQL システムには、さまざまな種類のログが存在します。さまざまなログにはそれぞれ独自の...

CSS 標準: vertical-align プロパティ

<br />原文: http://www.mikkolee.com/13私は最近、ver...

MySQL 無料インストール版 (zip) のインストールと設定の詳細なチュートリアル

この記事では、MySQL無料インストール版(zip)のインストールと設定のチュートリアルを参考までに...

Linux QT Kit が見つからない、バージョンが空の問題の解決策

現在このような問題が発生しています 私の状況は、QT が動かなくなってしまったため、仮想マシンを再起...

Oracle の MySQL バージョンでユーザー Scott のテーブル ステートメントを作成する例

概要: Oracle scottユーザーには4つのテーブルがあり、実験やデータ検証に便利です。現在は...

JavaScript配列をツリー構造に変換する方法

1. 需要バックエンドは、フロントエンドがツリー構造(重複データなし)に変換するためのデータを提供し...

Tomcat9 Windows サービスのインストールに関する詳細なチュートリアル

1. 準備1.1 service.bat を含む tomcat 圧縮パッケージをダウンロードします。...

ウェブ計算機を実装するためのjs

HTML、CSS、JS を使用してシンプルな Web 計算機を作成する方法は?コンピュータには次の...

MySQLサービスを開くおよび閉じる2つの方法

方法1: cmdコマンドを使用するまず、DOS ウィンドウを開き、スタート、実行、cmd と入力しま...

Docker でコンテナのポート マッピングを動的に変更する方法

前書き: Docker のポート マッピングは、多くの場合、Docker Run コマンド中に -p...