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

推薦する

overflow:autoの使い方の詳しい説明

本文に入る前に、オーバーフローとフレックスレイアウトの使い方をいくつか紹介します。 overflow...

require/import キーワードを使用して v-for ループでローカル画像をインポートするいくつかの方法

目次問題の説明方法 1 (バックエンドが画像 URL を返す)方法 2 (フロントエンドで requ...

Win10システムにMySQL 8.0をインストールするときに発生する問題を解決する

Win10 システムに MySQL 8.0 をインストールする際に発生する問題と解決策は次のとおりで...

MySQL 5.7.11 zip インストールと設定方法のグラフィックチュートリアル

1. MySQL 5.7.11 zipインストールパッケージをダウンロードするこのマシンはwin7 ...

CSS3 を使用して左上または右上隅にリマインダー ドットを表示するサンプル コード

効果画像(三角形をご希望の場合は、ここをクリックしてください): コード: <html>...

Vue テンプレート構成と Webstorm コード形式仕様設定

目次1. コンパイラコードフォーマット仕様設定2. Vueテンプレートの設定1. コンパイラコードフ...

バッチファイルを処理するLinuxの1行コマンドの詳細な説明

序文最良の方法は、あなたが思いつく最も速い方法ではないかもしれません。職場で一時的に使用するスクリプ...

MySQL ストレージ エンジン MyISAM と InnoDB の違いの概要

1. MySQLのデフォルトストレージエンジンの変更MySQL 5.1 より前のバージョンでは、デフ...

Zabbixのカスタム監視項目とトリガーについて

目次1. 監視ポート関係の説明操作する2. 監視サービス関係の説明操作する3. テンプレートのインポ...

Vue3 はメッセージコンポーネントの例を実装します

目次コンポーネント設計最終的なコンポーネントAPIの定義コンポーネント構造の定義テンプレートとスタイ...

マウスが画像のハイパーリンク上を通過するときに画像のサイズ(幅、高さ)を変更する CSS

マウスが画像の上を通過したときに画像のハイパーリンクを変更する方法:コードをコピーコードは次のとおり...

MySql における特殊演算子の使用の概要

序文MySQL には次の 4 種類の演算子があります。算術演算子比較演算子論理演算子ビット演算子これ...

CSS と JS を使用して下線効果を実装する方法の例

この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...

MySQL でのサブクエリの基本的な使用法

目次1. サブクエリの定義2. サブクエリの分類1. スカラーサブクエリ: 2. MySQLサブクエ...

Vue フィルター、ライフサイクル関数、vue-resource の簡単な紹介

1. フィルター例: <!DOCTYPE html> <html lang=&qu...