VUE-ローダ分析

VUE-ローダーコンポーネントを単一のファイルに作用するか観察研究:

 

 

単一ファイルのコンポーネントを作成します。

 

app.vue:

 

 

WebPACKの構成:

 

 

操作パッキング、生成されたコードは、このプロセス.vue最初のファイルのVUEローダで見ることができます。

 

 

//ここでは、import文が処理のために再びapp.vueファイルをWebPACKのローダインラインを使用します

JS // app.vueのVUE-ローダーの使用は、生成プロセスとstaticRenderFnsをレンダリングします

「./app.vue?vue&type=template&id=5ef48958&」からインポート{レンダリングstaticRenderFns}

//スクリプトを取得するために処理するために使用しVUE-ローダーをapp.vueします

「./app.vue?vue&type=script&lang=js&」からインポートスクリプト

「./app.vue?vue&type=script&lang=js&」からの輸出*

 

/ * *成分を正規化/

"!../ node_modules / VUE-ローダ/ libに/ランタイム/ componentNormalizer.js" からインポート正規化

 

//標準の正規化VUEのコンポーネントを使用して初期化

VAR成分=正規化(

  スクリプト、

  レンダリング、

  staticRenderFns、

  偽、

  ヌル、

  ヌル、

  ヌル

 

/ *ホットリロード* / //熱負荷関連コンテンツ

IF(module.hot){

  VaRのAPI =必要( "C:\\ユーザー\\ huhao \\デスクトップ\\ VUE-ローダー学ぶ\\ node_modules \\ VUEホットリロード-API \\ DIST \\ index.js")

  api.install(( 'VUEを')が必要です)

  IF(api.compatible){

    module.hot.accept()

    (もし!api.isRecorded( '5ef48958')){

      api.createRecord( '5ef48958'、component.options)

    }他{

      api.reload( '5ef48958'、component.options)

    }

    module.hot.accept( "./ app.vue?VUE&タイプ=テンプレート&ID = 5ef48958&"、関数(){

      api.rerender( '5ef48958'、{

        レンダリング:レンダリング、

        staticRenderFns:staticRenderFns

      })

    })

  }

}

 

__FILE属性タグファイル名のオプションの//コンポーネント

component.options .__ファイル= "SRC / app.vue"

//輸出のコンポーネントがにさらされています

輸出デフォルトcomponent.exports

 

 

このファイルの解析次のとおりです。

 新しいファイルを作成し、JS上記のコードを記入し、このファイルの呼び出しのWebPACKパッケージは、分析のためのコンソールを表示し、ページの実行中に注入生成main.jsをマークするための場所に印刷します。

 

 

staticRenderFns、スクリプトは、レンダリングローダーで再度処理取得します:

 

「./app.vue?vue&type=template&id=5ef48958&」からインポート{レンダリングstaticRenderFns}

//スクリプトを取得するために処理するために使用しVUE-ローダーをapp.vueします

「./app.vue?vue&type=script&lang=js&」からインポートスクリプト

     「./app.vue?vue&type=script&lang=js&」からの輸出*

 

 

ここでの内容は、テンプレートスクリプトブロック内容と再びVUE-ローダーと呼ばれるブロックコンテンツ自体の結果であります

VUE-テンプレート・コンパイラを使用してテンプレートブロック

 

 

標準化は、コンポーネントを生成します。

 

/ * *成分を正規化/

"!../ node_modules / VUE-ローダ/ libに/ランタイム/ componentNormalizer.js" からインポート正規化

 

//標準の正規化VUEのコンポーネントを使用して初期化

VAR成分=正規化(

  スクリプト、

  レンダリング、

  staticRenderFns、

  偽、

  ヌル、

  ヌル、

  ヌル

 

 

normalizeComponent機能を見て:

 

 

構造物の印刷されたコンポーネント:

 

 

輸出のコード部分の最後の部分は、としてエクスポートオプションに行ってきました

 

 

 

コンポーネントは、スクリプト部分に使用Vue.extendように生成された場合、なお輸出の関数です。

 

 

 

物語の公式ドキュメント:

 

 

 

 

 

* staticRenderFunctionsは何ですか

 

すなわちVUEのテンプレートコンパイラへの参照用*ヴュー・ローダー:分析セグメントブロックテンプレート

...

 

 

 

結論:VUEローダはWebPACKのローダ、サフィックス.vue単一文書処理コンポーネントです。.Vueは、最初に対応するコンテンツファイルに変換され、各テンプレート、スクリプト、CSS及びローダを呼び出す他の地域のそれぞれの内容は、オブジェクトの最終的な形は、JS成分データを返します。

 

 

おすすめ

転載: www.cnblogs.com/eret9616/p/11409512.html