序文: Vue3 がリリースされてからかなり経ちますが、最近、会社のプロジェクトで Vue2.x のソースコードも簡単に読んでみました。Vue3 の再構築以降、Vue プロジェクトのディレクトリ構造も大きく変わりました。各機能モジュールは 読者の便宜と記事の長さを抑えるため、ソースコードを読む際にあまり注意を払う必要のないロジックは折り返したり、/* ロジックを無視 */ などのコメントで無視したりします。 個人的には、ソース コード分析記事を読むときに、冒頭に長いコード セクションが表示されるのは好きではありません。これは、それを読んでいない学生を簡単に混乱させる可能性があるためです。そこで、このシリーズの記事では、キーコードのフローチャートを描いてみたいと思います。目的は同じで、全員が理解するためのコストを削減できるようにし、同時に生徒が次回自主的に読むときに参照できるフローチャートを提供することです。 1. Vueエントリファイルの解釈Vue オブジェクトのエントリ ポイント、 フローチャートを見た後は、一緒にコードを見てみましょう。この時点で、ほとんどの生徒は図のコードについて明確に理解していると思います。 すべてのコードをスキップして、ファイルの最後の 35 行を見てください。registerRuntimeCompiler 関数 コードの 17 行目を見ると、 <テンプレート> <div> こんにちは世界 </div> </テンプレート> この単純なテンプレートをコンパイルすると、 const _Vue = Vue return function render(_ctx, _cache) { with (_ctx) { const { openBlock: _openBlock, createBlock: _createBlock } = _Vue return (_openBlock(), _createBlock("div", null, "Hello World")) } } この魔法の このコード文字列の結果を取得した後、コードを見ていきます。25 行目では 最後に、エントリ ファイルは 上記のソースコードの 1 行目を見ると、エントリ ファイルが この時点で、 2. コンパイル処理 以下の baseCompile 関数を見てみましょう。 まず、関数宣言から、 エクスポートインターフェースCodegenResult { コード: 文字列 プリアンブル: 文字列 ast: ルートノード マップ?: RawSourceMap }
上記のソース コードの 12 行目を見て、 次のソースコードは 16 行目です。これは、 最後に、32 行目で、変換された AST を生成に渡し、 compile-core モジュールでは、AST 解析、 この記事では、エントリ ファイルから始まるコンパイルの一般的なプロセスについて説明します。コンパイラのこのモジュールのコードを読むときに、誰もがプロセスを明確に理解できるようにし、フローチャートとともに読むとさらに興味深くなることを願っています。 これで、Vue3 コンパイルプロセス - ソースコード分析に関するこの記事は終了です。Vue3 コンパイルプロセスの関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Docker インストール Nginx チュートリアル 実装図
目次概要例なぜそれが必要なのでしょうか?設定参照、反応的計算して見るライフサイクルVue3.0 は ...
ここでは、samba (ファイル共有サービス) v4.9.1 + OPENldap (バックエンド ...
目次更新可能なビュービューのパフォーマンスビューの制限ビューは MySQL 5.0 以降で導入されま...
CSS の開発履歴についてはここでは紹介しません。ブログを書いている理由の 1 つは、フロントエンド...
目次序文:親切なヒント:変数1. 免責事項2. 譲渡3. 2つの小さな文法上の詳細変数の命名規則なぜ...
下の図は、当社のウェブサイト統計システムの訪問者詳細におけるブラウザ閲覧率を示しており、IE6 が ...
1. mysql-8.0.15をダウンロード、インストール、設定する1. 公式サイト (https:...
ソフトウェアバージョンウィンドウズ: ウィンドウズ10 MySQL: mysql-8.0.17-wi...
いつものように、まずは画像効果を投稿しましょう: このエフェクトの原理は非常にシンプルです。CSS3...
目次1. デザインパターンとは何ですか? 2. デザインパターンの5つの設計原則(SOLID) 3....
現実世界では、鍵は外の世界から身を隠したいときに使用するツールです。コンピュータでは、複数のプロセス...
1. 設置環境Windows7 で MySQL5.6 データベースの解凍バージョンをアンインストー...
1. Expressライブラリとジェネレータをインストールするcmdを開いて、次のコマンドを入力しま...
データベースへの接続などの基本的な操作はご自身で行ってください。この記事ではパスワードの変更方法を中...
目次概要Canvas API: グラフィックスの描画パス線種矩形アーク文章グラデーションと画像の塗り...