メシのタネ

めしのたねになるIT情報配信サイト


Vue.js使った時に画面に一瞬文字が残る問題への対処方法


  1. Webプログラム
  2. javascript
  3. Vue.js使った時に画面に一瞬文字が残る問題への対処方法

Vue.js使ってると、ちょっと重たい処理をやる時に、画面にvue.jsで書いた部分がそのまま出力されることがあります。この現象を「ちらつき」と呼ぶ人が多いので、似たような現象に対して、〇〇 ちらつきって検索かけるとヒットすることが多い気がします。

ちらつきってなに

Fliker現象とも呼ぶようです。蛍光灯、水銀灯が激しく明滅することによって、ちらつきとして見える現象のことをこのように呼んでいます。ITでちらつきが使われだしたのは、CRTモニタ(ブラウン管モニタ)はリフレッシュレートが低くて、画面が明滅する現象があったからだと言われています。これ以降、個人的に画面に明滅を伴う不具合がある場合、この症状に対しちらつきという名前がついているように感じます。

ちらつき例

例えば、マウスフォーカスをボタンにあてた際にロールオーバー効果のあるボタンが明滅する場合、ちらつきと呼ばれています。または、ある要素にマウスフォーカスを当てた際に、対象要素が明滅する場合にもこう呼ばれています。

vue.jsでちらつきを消す方法

それでは、本題に戻ります。Vue.jsでちらつきを消す場合、HTMLにV-cloakディレクティブを追加します。これはcssとの組み合わせで動作するので、画面に表示させないまたは透明度を0にするといったようなスタイルを当てる必要があります。こうすることで、v-cloakが、Vueインスタンスを生成する間、Vueオブジェクトと紐づけてる処理や変数を隠すことができます。

<html>
<head>
</head>
<body>
<div id="test" v-cloak>

</div>
</body>
</html>

[v-cloak] {
  display: none;
}

具体的に上記のように記述すれば対処することができます。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

若い頃、「仕事中にハマったこと」や「誰かに共有したい技術的な気づき」をアウトプットしたくてブログを始めましたが、勢い任せでよく分からない記事を大量生産し、あえなく飽きて終了。

改めて今、キャリア15年分の経験や知識が、これからITエンジニアを目指す方や、同じような課題で悩んでいる現役エンジニアの「メシのタネ」になるような記事を残したいと思っています。
※過去の記事は見ると精神が崩壊するため、そっとしておいてください。

🛠 経歴という名の珍道中:
文系Fラン → 広告営業 → Web営業 → 通信営業 → Web進行 → 出版 → Web媒体運用 → ソフトウェアハウス → SES → フリーランス

専門教育も受けず、転職歴も多数。履歴書はまるで時系列の事故記録のようですが、試行錯誤を重ね、なんとかエンジニアとして食べています。

このブログでは、そんな「履歴書クラッシャー型エンジニア」が送る、
名古屋一敷居の低い、実務に役立つ技術ブログを目指します。

PHP
魔王と行く! / Interface / Polymorphism / Ontology 深淵ガイドNew!!
Laravel
Laravel 12、「コード 1 行も書き換えず未来へ」──静かな革命の手順書New!!
Laravel
LaravelのMiddlewareって意味あるの?仕組み・使いどころ・やらかしまで整理してみたNew!!
Laravel
ServiceProviderって何してるの?DIの背後で動いてるやつの正体New!!
Laravel
LaravelのサービスコンテナとDI、「書いてるだけで動く」コードの正体
Laravel
Laravelのアーキテクチャ、実は誰もわかってない説