今回は、Vue のページ読み込みプログレスバーを実装するための 注意事項 を紹介します。実際のケースを見てみましょう。
ページの読み込み進行状況バーを最初に見たのは YouTube でしたが、その後、ほぼすべての主要な Web サイトで表示されるようになり、ユーザーがページを読み込むときに完全に空白のページを見つめることがなくなり、ユーザー エクスペリエンスが向上しました。 しかし、開発の観点から見ると、ロジック コードが読み込まれるまで進行状況をカウントできず、ロジック コード自体の進行状況もカウントできないため、この種のプログレス バーの信頼性を把握するのは非常に困難です。さらに、すべてのリソースの負荷を監視することは不可能です。実際、ユーザーはページの何パーセントが読み込まれているかには関心がありませんが、本当に関心があるのは、ページが完全に読み込まれるまでの時間と、空白のページが完全に読み込まれていないのか、読み込み後に空白であるかということです。したがって、プログレス バーを「シミュレート」する必要はなく、バックエンド データが返される前に偽のアニメーション効果を使用して読み込みをシミュレートし、データが返された後にプログレス バーを読み取って非表示にする必要はありません。
// progress-bar.vue <template> <transition name="fade"> <p class="progress-bar" v-if="isShow"> </p> </transition> </template> <script type="text/babel"> export default { data() { return { isShow: true, // 是否显示进度条 val: 0, // 进度 } }, props: { /** * 每10毫秒自增幅度 */ step: { type: Number, default: 5, }, /** * 初始值 */ initVal: { type: Number, default: 0, }, /** * 到一定进度停止 */ stopVal: { type: Number, default: 80, }, /** * 进度条继续到成功 */ isOk: { type: Boolean, default: false, }, }, mounted() { // 初始化后加载进度,加载到百分之多少由stopVal决定 this.val = this.initVal let step = this.step let timer = setInterval(() => { this.val = this.val + step this.$el.style.width = this.val + '%' // 父组件数据加载完前进度条最多到stopVal的这个百分值 if (this.val >= this.stopVal) { clearInterval(timer) return } }, 10) }, watch: { /** * 监听组件props变化决定是否继续加载,一般在父组件数据加载完后改变此标志位 */ isOk() { let val = this.val let step = this.step let timer = setInterval(() => { val = val + step this.$el.style.width = val + '%' // 加载到百分百完成 if (val >= 100) { // 关闭定时器 clearInterval(timer) // 加载完成关闭进度条 this.isShow = false // 加载完成的回调 this.$emit('callback', 'load success') return } }, 10) }, }, } </script> <style lang="stylus" rel="stylesheet/stylus"> .progress-bar { position fixed top 0 height 6px width 0 background-color #999 } .fade { &-enter-active, &-leave-active { transition: all .3s } &-enter, &-leave-active { opacity: 0 } } </style>
この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
vue は現在選択されている項目のステータスを変更します
vue+checkbox がデータバインディング、取得、計算をどのように操作するか
以上がVue はページ読み込みのプログレスバーを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。