ホームページ ウェブフロントエンド jsチュートリアル vueページ読み込み時のちらつき問題の解決策

vueページ読み込み時のちらつき問題の解決策

May 28, 2018 pm 04:14 PM
解決する 点滅する

この記事では主に、Vue ページの読み込み時に点滅する問題の解決策を紹介し、v-if と v-show の違いと、Vue ページの読み込み時に {{message}} がクラッシュする問題を解決する 2 つの方法について説明します。 . 興味のある友達、一緒に見てみましょう

v-ifとv-showの違い

v-ifは条件が満たされた場合にのみコンパイルされますが、v-showは条件に関係なく常にコンパイルされますv -show の表示と非表示は、CSS の表示属性を切り替えるだけです。

言い換えると、v-if を使用する場合、値が false の場合、ページにはこの HTML タグが生成されません。そして、v-show: 値が false か true に関係なく、html 要素は存在し、CSS の表示属性を切り替えるだけです。

使用シナリオ

一般に、v-if はスイッチング コストが高く、v-show は初期レンダリング コストが高くなります。したがって、頻繁に切り替える必要がある場合は v-show が適しており、実行時に条件が変化する可能性が低い場合は v-if が適しています。

さらに

1. v-if ディレクティブはテンプレートのパッケージ化要素に適用できますが、v-show はテンプレートをサポートしません

2. v-show がコンポーネントに適用されるとき、ディレクティブの優先順位 v-else に問題が発生します。解決策は、v-else を別の v-show に置き換えることです

 // 错误
  <custom-component v-show="condition"></custom-component>
  <p v-else>这可能也是一个组件</p>
     // 正确做法
  <custom-component v-show="condition"></custom-component>
  <p v-show="!condition">这可能也是一个组件</p>
ログイン後にコピー

vue の実行時に {{message}} がクラッシュする問題を解決するには、ページを読み込み中です

方法 1: v-cloak

v-cloak ディレクティブが [v-cloak]{display:none} などの CSS ルールとともに使用される場合、このディレクティブは、コンパイルされていない Mustache タグを、インスタンスの準備ができました。
v-cloak コマンドは、CSS セレクターのような CSS スタイルのセットをバインドでき、この CSS セットはインスタンスがコンパイルされるまで有効になります。

  eg:
    // <p> 不会显示,直到编译结束。
    [v-cloak]{
      display:none;
        }
    <p v-cloak>
       {{ message }}
    </p>
ログイン後にコピー

方法 2: v-text

vue ではデータを 2 つの中括弧で囲んで HTML に入れますが、vue 内ではすべての二重括弧が v-text にコンパイルされます。 textNode のディレクティブ。

v-text を使用する利点は常にパフォーマンスが向上することであり、さらに重要なことに、上記で発生した問題である FOUC (未コンパイル コンテンツのフラッシュ) を回避できることです。

eg:
  <span v-text="message"></span>
  <!-- same as -->
  <span>{{message}}</span>
ログイン後にコピー

追加:

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 + &#39;%&#39;
    // 父组件数据加载完前进度条最多到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 + &#39;%&#39;
     // 加载到百分百完成
     if (val >= 100) {
      // 关闭定时器
      clearInterval(timer)
      // 加载完成关闭进度条
      this.isShow = false
      // 加载完成的回调
      this.$emit(&#39;callback&#39;, &#39;load success&#39;)
      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>
ログイン後にコピー

以上、皆様のお役に立てれば幸いです。

関連記事:

サーバーから返されたXMLのAJAX処理方法

AJAXの簡単な非同期通信例分析

AjaxをベースにしたJavaScriptで、更新せずにWebページ上のファイル内容を動的に表示

以上がvueページ読み込み時のちらつき問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Steamエラーコード118を修正する方法 Steamエラーコード118を修正する方法 Feb 19, 2024 pm 05:56 PM

Steam は、ユーザーがゲームを購入、ダウンロード、プレイできる世界的に有名なゲーム プラットフォームです。ただし、Steam の使用中にエラー コード 118 などの問題が発生する場合があります。この記事では、この問題とその解決方法について説明します。まず、エラーコード 118 の意味を理解しましょう。 Steam にログインしようとすると、エラー コード 118 が表示されます。これは、コンピュータが Steam サーバーに接続できないことを意味します。これは、ネットワークの問題、ファイアウォール設定、プロキシ設定、または

Win11システムに中国語言語パックをインストールできない問題の解決策 Win11システムに中国語言語パックをインストールできない問題の解決策 Mar 09, 2024 am 09:48 AM

Win11 システムに中国語言語パックをインストールできない問題の解決策 Windows 11 システムの発売に伴い、多くのユーザーは新しい機能やインターフェイスを体験するためにオペレーティング システムをアップグレードし始めました。ただし、一部のユーザーは、アップグレード後に中国語の言語パックをインストールできず、エクスペリエンスに問題が発生したことに気づきました。この記事では、Win11 システムに中国語言語パックをインストールできない理由について説明し、ユーザーがこの問題を解決するのに役立ついくつかの解決策を提供します。原因分析 まず、Win11 システムの機能不全を分析しましょう。

SteamエラーコードE20の解決方法 SteamエラーコードE20の解決方法 Feb 19, 2024 pm 09:17 PM

Steam を使用してゲームをダウンロード、アップデート、またはインストールすると、さまざまなエラーコードが頻繁に発生します。その中でよくあるエラーコードはE20です。このエラー コードは通常、Steam クライアントがゲームを更新しようとして問題が発生していることを意味します。ただし幸いなことに、この問題を解決するのはそれほど難しくありません。まず、エラー コード E20 を修正するには、次の解決策を試してください。 1. Steam クライアントを再起動します: Steam クライアントを直接再起動すると、この問題が解決できる場合があります。 Steam ウィンドウ内

Black Shark携帯電話の電源が入らない問題を解決する方法を教える5つのヒント! Black Shark携帯電話の電源が入らない問題を解決する方法を教える5つのヒント! Mar 24, 2024 pm 12:27 PM

スマートフォン技術が発展し続けるにつれて、携帯電話は私たちの日常生活においてますます重要な役割を果たしています。 Black Shark フォンは、ゲーム パフォーマンスに重点を置いたフラッグシップ フォンとして、プレイヤーから高い支持を得ています。ただし、場合によっては、Black Shark 携帯電話の電源が入らないという状況にも直面するため、この問題を解決するために何らかの措置を講じる必要があります。次に、Black Shark 携帯電話の電源が入らない問題を解決する方法を説明する 5 つのヒントを共有しましょう: ステップ 1: バッテリー残量を確認する まず、Black Shark 携帯電話に十分な電力があることを確認します。携帯電話のバッテリーが消耗している可能性があります

このデバイスにドライバーをロードできません。解決するにはどうすればよいですか? (個人的にテスト済みで有効です) このデバイスにドライバーをロードできません。解決するにはどうすればよいですか? (個人的にテスト済みで有効です) Mar 14, 2024 pm 09:00 PM

コンピューターがドライバーを読み込めない場合、デバイスが正しく動作しないか、コンピューターと正しく対話できない可能性があることは誰もが知っています。では、このデバイスにドライバーをロードできないことを示すプロンプト ボックスがコンピューターに表示された場合、問題を解決するにはどうすればよいでしょうか?以下のエディタでは、問題を簡単に解決する 2 つの方法を説明します。このデバイスにドライバーをロードできません 解決策 1. スタート メニューで「カーネル分離」を検索します。 2. メモリの整合性をオフにします。上記のメッセージには、「メモリの整合性がオフになっています。デバイスは脆弱である可能性があります。」というメッセージが表示されます。戻るボタンをクリックして無視してください。使用には影響しません。 3. マシンを再起動すると、問題が解決することがあります。

小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか?投稿時に自動保存された画像はどこにありますか? 小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか?投稿時に自動保存された画像はどこにありますか? Mar 22, 2024 am 08:06 AM

ソーシャルメディアの継続的な発展に伴い、Xiaohongshu はますます多くの若者が自分たちの生活を共有し、美しいものを発見するためのプラットフォームとなっています。多くのユーザーは、画像を投稿する際の自動保存の問題に悩まされています。では、この問題をどうやって解決すればよいでしょうか? 1.小紅書で公開するときに写真が自動的に保存される問題を解決するにはどうすればよいですか? 1. キャッシュをクリアする まず、Xiaohongshu のキャッシュ データをクリアしてみます。手順は次のとおりです: (1) 小紅書を開いて右下隅の「マイ」ボタンをクリックします。 (2) 個人センター ページで「設定」を見つけてクリックします。 (3) 下にスクロールして「」を見つけます。 「キャッシュをクリア」オプションを選択し、「OK」をクリックします。キャッシュをクリアした後、Xiaohongshu を再起動し、写真を投稿して、自動保存の問題が解決されるかどうかを確認します。 2. 小紅書バージョンを更新して、小紅書が正しく動作することを確認します。

Linuxで中国語の文字化けを解決する方法 Linuxで中国語の文字化けを解決する方法 Feb 21, 2024 am 10:48 AM

Linux の中国語の文字化け問題は、中国語の文字セットとエンコーディングを使用する場合によく見られる問題です。文字化けは、ファイルのエンコード設定が正しくない、システム ロケールがインストールまたは設定されていない、端末の表示設定エラーなどが原因で発生する可能性があります。この記事では、いくつかの一般的な回避策を紹介し、具体的なコード例を示します。 1. ファイルのエンコード設定を確認します。ファイルのエンコードを表示するには file コマンドを使用します。ターミナルで file コマンドを使用して、ファイルのエンコードを表示します: file-ifilename。出力に「charset」がある場合

PyCharmが開けない問題を解決する方法を共有します PyCharmが開けない問題を解決する方法を共有します Feb 22, 2024 am 09:03 AM

タイトル: PyCharmが開けない問題の解決方法 PyCharmは強力なPython統合開発環境ですが、時々PyCharmが開けない問題に遭遇することがあります。この記事では、一般的な回避策をいくつか紹介し、具体的なコード例を示します。この問題に遭遇した方のお役に立てれば幸いです。方法 1: キャッシュをクリアする PyCharm のキャッシュ ファイルにより、プログラムが正常に開けなくなることがあります。この問題を解決するには、キャッシュをクリアしてみてください。道具

See all articles