Vueのロード順序検討(一)

1660 ワード

Vuejs 1.0では、親子コンポーネントが結合されている場合、ライフサイクル実行には次のような特徴があります.
1.createdは常に親と子である
ライフサイクル関数createdは常に親から子への順序で順次実行されるが,兄弟間ではこのような順序で厳密に実行されず,非同期関数が採用されていると推定され,それだけでなく,子コンポーネントの親コンポーネントへの挿入順序もランダムであり,特に法則はない.サブアセンブリの参照順序は次のようになります.
<div class="container">
    <child-c1 v-ref:child1>child-c1>
    <child-c2 v-ref:child2>child-c2>
div>

$childrenリファレンスを使用してすべてのサブコンポーネントを取得する場合、「child-c 1」は常に最初の位置にあるわけではありません.以下のようにします.
    //            
    if(this.$children[0] === this.$refs.child1) {
        //                 
    }

2.readyの順序がもっと混乱している
私の推定では、親子コンポーネントのready順序は、コンポーネントの完全なロードが完了することを保証するために、親コンポーネントのready順序であるべきであるが、実際の例から見ると、readyは完全に順序がなく、親コンポーネントが先にロードが完了する場合もあれば、サブコンポーネントが先にロードが完了する場合もあるので、プログラミングの実践では、決してロード順序に依存してはならない.
3.結論
実際には、コンポーネントの順次ロードが完了することを保証する必要がある場合は、コンポーネントのライフ順序に依存したり、親子コンポーネントのreadyライフサイクルに依存したりしてはいけません.