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

推薦する

Mac での MySQL と Squel Pro の設定

Node.js の人気に応えて、最近、いくつかのサーバー側機能を実装するために Node.js を使...

React リストバーとショッピングカートコンポーネントの使用の詳細な説明

この記事では、Reactリストバーとショッピングカートコンポーネントの具体的なコードを参考までに紹介...

Vueベースのカスタムコンポーネントを実装してアイコンを導入する

序文プロジェクト開発では、アイコンを使用する方法はたくさんあります。iconfont で適切なアイコ...

MySQL インデックス プッシュダウン (ICP) の簡単な理解と例

序文Index Condition Pushdown (ICP) は、MySQL 5.6 の新機能で...

Vue は PC カメラを呼び出してリアルタイムで写真を撮る機能を実装します

VueはPCカメラを呼び出してリアルタイムで写真を撮影します。参考までに、具体的な内容は次のとおりで...

Nodeはkoa2を使用してシンプルなJWT認証方式を実装します

JWT の紹介JWTとは正式名称はJSON Web Tokenで、現在最も人気のあるクロスドメイン認...

Vue3 (パート 2) Ant Design Vue の統合

目次1. Ant Design Vueを統合する2. コンポーネントの使用1. 完全な引用2. コン...

docker CMD/ENTRYPOINT が sh スクリプトを実行する問題の解決策: not found/run.sh:

Dockerfile の設定に問題はありませんが、ENTRYPOINT コマンドを実行するとエラー...

高可用性 Web クラスターを実装するための Keepalived+Nginx+Tomcat サンプル コード

高可用性 Web クラスターを実現する Keepalived+Nginx+Tomcat 1. Ngi...

Reactソースコードにおけるビット演算について詳しく説明します

目次序文いくつかの一般的なビット操作ビットAND (&)ビットOR (|)ビット否定(~)マ...

Web ページのソース ファイルを表示できない場合はどうすればよいですか?

Q: Outlook または IE のどちらを使用している場合でも、マウスを右クリックすると、ポッ...

Linux環境でOpenSSL証明書を生成する

1. 環境: CentOS7、OpenSSL1.1.1k。 2. コンセプト:ルート証明書: サーバ...

Docker イメージのデフォルトの保存場所を変更する方法 (ソリューション)

システムの初期のパーティション分割により、オペレーティング システム内の対応する / パーティション...

MySQLクエリトランザクション処理へのノード接続の実装

目次トピックmysqlの追加、削除、変更、クエリを入力しますMySQL トランザクション処理私は M...

Vue ページ スタック マネージャーの詳細

目次2. 試した方法2.1 キープアライブ2.2 ネストされたルートを持つ CSS 3. 機能説明4...