ロード時にローディングスピナーを表示しながら、非同期にロードしたいコンポーネントがかなりあります。async Vue 2コンポーネントのロードスピナーを表示します。
v-if="loading"
のスピナーコンポーネントにリンクされたdata
で定義されたloading
を使用してこれが私の最初の試みです。私はまた、いくつかのVue 1.0の例を見つけたが、彼らは$refs
に依存
export default {
data: {
return {
loading: false,
};
},
components: {
// ...
ExampleComponent: (resolve) => {
// Doesn't work - 'this' is undefined here
this.loading = true;
require(['./ExampleComponent'], (component) => {
this.loading = false;
resolve(component);
});
},
},
};
- - 2.0 $refs
でノーであることはVueのはcomponents
内部機能のための適切this
を再バインドしないようですので、残念ながら、これは動作しません。応答時間が長くなり、これに使用することはできません。残っている唯一の方法は、子コンポーネント自体がアプリケーションのデータ状態にマウントライフサイクルイベントを実行してローディングスピナーを削除することですが、それは少し重いようです。これを行うより良い方法はありますか?