Advanced-Async-Componentsをロードして、アプリケーションのロード後にasync component
をロードしています。「遅延」パラメータに関係なく、Vue非同期コンポーネントが遅延なしでロードされています
Index.vue
<template>
<div class="">
<Async></Async>
</div>
</template>
<script>
// async component
import LoadComp from '@/components/Loading'
import ErrorComp from '@/components/Error'
const Async =() => ({
// The component to load. Should be a Promise
component: import('@/components/Async'),
// A component to use while the async component is loading
loading: Load,
// A component to use if the load fails
error: ErrorComp,
// Delay before showing the loading component. Default: 200ms.
delay: 4000, // <--- this is not effecting the loading of component
// The error component will be displayed if a timeout is
// provided and exceeded. Default: Infinity.
timeout: 3000
})
export default {
components: {
Async
}
}
</script>
Async.vue
<template lang="html">
<div class="">
Lorem ipsum dolor sit amet, con .... very larger string/data
</div>
</template>
<script>
export default {
}
</script>
<style lang="css">
</style>
上記のコードは正常に動作しますが、それはdelay
パラメータの効果はありません(:だから私は、次のコードを試してみましたIndex.vue)。公式の文書によるとdelay
はです。ローディングコンポーネントを表示する前の遅延。 4000ms
の後にコンポーネントをロードする必要がありますが、すぐにロードされます。
どうしてですか?
setTimeout
とは別に、これを実現する方法はありますか?
追加情報
私はdelay
オプションがロードコンポーネントを表示する前にミリ秒単位の遅延量を設定しますので、これが起こっているvue-cli
Vue version : ^2.4.2
ありがとうございました。私は 'setTimeout'を試しましたが、もっと良い方法を試してみました。しかし、今はそれが私の考え方です。ちょうど1つの質問は、 'delay'時間の後にsetTimeoutがトリガされたか?上記のコードの 'setTimeout'が' delay'に比べて非常に少ない場合はどうでしょうか? –
上記の例の 'setTimeout'関数は、遅延が指定された後にトリガされます。コンポーネントが遅延量より少ない時間でロードされた場合、ローディングコンポーネントは表示されません。 – thanksd