LoginSignup
7
6

More than 5 years have passed since last update.

Angularとはちょっと違う。Vueインスタンスのコンパイルが終了するまで表示される変数名{{ message }}を消したい。

Last updated at Posted at 2017-04-11

Angularばっか触っていたので脳みそ内でAngularとVueがごっちゃごっちゃしてます。

Angularでもありましたが、Vue.jsでも {{ }} の変数解決が行われるまで、ブラウザの画面上に {{ message }} など変数名が一瞬表示されて気持ちが悪い。

ってなわけで、Angularでいうとこのng-cloak的なものがないか探したところ、Vue.jsにもありました。
ただ、ちょっとだけAngularとは異なる部分があったので、そこについてメモを残しておこうと思います。

この記事は、
Vue.js v2.2.6
を使用しています。

v-cloak と ng-cloakの違い

v-cloakを使用すれば、Vue インスタンスのコンパイルが終了するまで表示されていた、 {{ }} を画面に描画させないようにできます。

一点注意が必要なとこは、Angularだと、

<div ng-cloak> 
  {{ message }}
</div>

とするだけでよかったのですが、
v-cloakだと

[v-cloak] {
  display: none;
}

と CSS のルールと組み合わせが必要になってきます。
地味にハマった。ちゃんとリファレンス読まな行きませんね(; ;)

実際のv-cloakを使った簡単なサンプル

sample.html
<html>
  <head>
    <style>
      [v-cloak] {
        display: none;
      }
    </style>
  </head>

  <body>
    <div id="app" v-cloak>
      {{ message }}
    </div>

    <script src="lib/vue.min.js"></script>
    <script>
      var app = new Vue({
        el: '#app',
        data: {
          message: 'Hello Vue!'
        }
      })
    </script>
  </body>
</html>
7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6