序文: 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 チュートリアル 実装図
MySQL をインストールした後、DOS ウィンドウまたは MySQL 5.7 コマンドライン クラ...
jQuery 入門jQuery ライブラリは、簡単なマークアップ行を使用して Web ページに追加で...
目次設計シナリオ技術的なポイントサーバー情報準備フルバックアップスクリプト(Mysql-FullyB...
1. CSSを使用するコードをコピーコードは次のとおりです。スタイル="display:n...
数日前、CSS を使用して三角形の矢印を実装する方法について記事を書きました。 目的の効果は達成され...
この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...
データ表示は、常にあらゆる職業の人々が求めているものです。特にフロントエンド開発業界では、データを表...
私たちは視覚の世界に住んでおり、多くの視覚効果に囲まれています。コンピューターの前にいても、屋外にい...
MySQL proxies_priv(シミュレートされたロール)を使用して同様のユーザーグループ管理...
1. 配列のよく使われる高階関数配列があり、その配列に対して次の操作を実行したいとします。 100 ...
目次効果ドキュメント最初のステップステップ2ステップ3ソースコード効果ドキュメント最初のステップta...
MySQL データベースをインストールすると、デフォルトの MySQL データベースの最大接続数が ...
1つ。 Nexus プライベート サーバーを構築する理由は何ですか?社内の開発メンバーは全員外部ネッ...
この記事の目的は、これらの概念とその機能の関係を明らかにすることです。 Mysql がトランザクショ...
結論:マルチスレッド環境では、スレッドの 1 つがクラッシュすると、他のスレッド (プロセス全体) ...