ライフサイクルVUEネストされたコンポーネント

ライフサイクルVUEネストされたコンポーネント

Q:A、B、C三の成分、それらの順序が作成され、どのような装着され、Aは、親コンポーネントBであり、Bは親成分Cは?すなわち、(beforeCreate /作成、beforeMounte /マウント)実行シーケンス

コードを示してい

1  <!DOCTYPE HTML > 
2  < HTML のlang = "EN" > 
3  < ヘッド> 
4      < メタのcharset = "UTF-8" > 
5      < メタ= "ビューポート" コンテンツ= "幅=デバイス幅、初期スケール= 1.0" > 
6      < メタHTTP-当量= "X-UA-互換" コンテンツ= "IE =縁" > 
7      < スクリプトSRC = "https://cdn.jsdelivr.net/npm/vue" > <
     タイトル>嵌套组件的生命周期</ タイトル> 
9  </ ヘッド> 
10  < 本体> 
11      < DIVのID = "アプリケーション" > 
12          < 成分A /> 
13      </ DIV >    
14   
15      < スクリプト> 
16          ヴュー。成分(' 成分A-A ' 、{
 17              テンプレート:' の<div> <成分B> </成分B> </ div> ' 18              beforeCreate(){
 19                 console.log(' beforeCreate:A ' );
20              }、
 21              (){作成
 22                  はconsole.log(' 作成:Aを' );
23              }、
 24              beforeMount(){
 25                  はconsole.log(' beforeMount:A ' );
26              }、
 27              (){搭載
 28                  にconsole.logは(' 搭載:Aを' );
29              }
 30          });
31   
32          Vue.component(' 成分-B ' 、{
 33              テンプレート:' <P> <成分-C> </コンポーネント-C> </ P> ' 34              beforeCreate(){
 35                  はconsole.log(' beforeCreate。 B ' );
 36              }、
 37              作成(){
 38                  はconsole.log(' 作成:B ' );
 39              }
 40              beforeMount(){
 41                  はconsole.log('beforeMount:B " );
42              }、
 43              (){搭載
 44                  にconsole.logは(' 搭載:Bを' );
45              }
 46          });
47   
48          Vue.component(' 成分-C ' 、{
 49              テンプレート:' <スパン>のHello World </スパン> ' 50              beforeCreate(){
 51                  はconsole.log(' beforeCreate:C ' );
 52              }、
53              作成(){
 54                  はconsole.log(' 作成:C ' )。
55              }、
 56              beforeMount(){
 57                  はconsole.log(' beforeMount:C ' )。
58              }、
 59              (){搭載
 60                  にconsole.logは(' 搭載:C ' )。
61              }
 62          });
63   
64          CONSTアプリ=  新しいヴュー({
 65              EL:' #app ' 66              beforeCreate(){
 67                  はconsole.log(' beforeCreate:ルート' )。
68              }、
 69              作成(){
 70                  はconsole.log(' 作成:ルート' )。
71              }、
 72              beforeMount(){
 73                  はconsole.log(' beforeMount:ルート' )。
74              }
 75が             装着され(){
 76                  はconsole.log(' マウント:ルート' );
77              }
 78          });
79      </ スクリプト> 
80  </ ボディ> 
81  </ HTML >

印刷結果

 

1  beforeCreate:ルート
 2  作成:ルート
 3  beforeMount:ルート
 4  beforeCreate:
 5  作成:
 6  beforeMount:
 7  beforeCreate:B
 8  作成:B
 9  beforeMount:B
 10  beforeCreate:C
 11  作成:C
 12  beforeMount:C
 13が 取り付けられて:C
 14が 搭載:B
 15が 搭載:
 16搭載:ルートを

 

我々はbeforeCreateによる印字結果を見ることができ、作成された、beforeMountedは、外部から内部への順序で実行され、即ち搭載最終段階は、内側から外側に装着され、その後、第1のサブアセンブリのDOMに搭載これは、親コンポーネントであります

 

何故

実際には、親サブアセンブリの構成部品のその後同等の一部、ネストされたサブの父、コンポーネント間の親子関係があるので、ノウハウを考える、それは最初のDOMの最初の部分にマウントする必要があり、その後、全体親コンポーネントは、最大搭載します。

概要

父と息子のネストされたコンポーネントは、実際にはのライフサイクルのある  子の後に私の亡き父  と  父の後の最初の息子追加され、関連するコードのその後の更新を破壊しました。

おすすめ

転載: www.cnblogs.com/---godzilla---/p/11441172.html