3
のは、次のように私はVueJSとの基本的なページを持っているとしましょう:出力のVueJSは、正しい順序でmounted()を呼び出すことが保証されていますか?
Vue.component('child', {
template: '<p>Placed at index {{index}}</p>',
data() {
return {
index: 0
}
},
mounted() {
this.index = this.$parent.addElement(this);
}
});
new Vue({
el: '#theParent',
data() {
return {
allElements: []
}
},
methods: {
addElement(elem) {
this.allElements.push(elem);
return this.allElements.length - 1;
}
}
});
<script src="https://cdn.jsdelivr.net/vue/2.3.2/vue.min.js"></script>
<div id="theParent">
<child></child>
<child></child>
<child></child>
</div>
目的は要素がで挿入されているかどうかインデックスで説明するだけです。私のユースケースでは、要素がHTMLに表示されるのと同じ順序で追加される必要があります。このページを実行するたびに、出力が順調に進行しているように見えます。
私の質問です:この動作は常に起こることが保証されていますか?VueJSは常に、コンポーネントに表示される順序でmounted()
を実行しますか?そうでない場合は、正しい順序で配列に追加されることを保証する別の方法がありますか?
コンポーネントの複雑さによっては、順序が保証されません。 なぜ '$ parent.addElement'を実行しますか?あなたのコンポーネントは、すでにこのコンポーネントの子です。 あなたがしたいのは、要素の順序を関数の特定の実行またはderと一致させることです。私は、順序をレンダリングするのではなく、子コンポーネントを作成するために繰り返す配列のような、さまざまな真実のソースを使用することをお勧めします。 –
残念ながら、配列内の ''コンポーネントは実際のユースケースで定義されているので、大量のHTML( ' 'でレンダリングされています)で定義され、すべてのHTMLを配列内の文字列は本当の混乱になります。 –
abagshaw
実際のユースケースに近いコード例を提供できますか? –