Vue v-cloak Directive


Example

Using v-cloak to hide precompiled content.

<div id="app" v-cloak>
  {{ message }}
</div>
Try it Yourself »

See more examples below.


Definition and Usage

The v-cloak directive is used to hide content until compilation is finished.

Typically, v-cloak prevents the user from seeing flickering of pre-compiled content including curly braces during the loading of the page.

To hide pre-compiled content, the element is marked with v-cloak, and CSS rules are defined to hide this content until compilation is finished.

The v-cloak directive only works for Vue code that compiles in the browser, so it is not useful when working with SFC (*.vue) files.


More Examples

Example 1

Using v-cloak to display red text before the compilation is finished, so that we can see the pre-compilation phase more clearly.

<!DOCTYPE html>
<html>
<head>
  <title>Vue v-cloak Directive</title>
  <style>
    [v-cloak] {
      color: red;
    }
    #app {
      padding: 10px;
      font-size: x-large;
      background-color: lightgreen;
    }
  </style>
</head>
<body>

<h1>Vue v-cloak Example</h1>

<p>The v-cloak directive is used to make the text red until the compilation is complete. Refresh the page, or click the "Run" button, to see the pre-compilation phase better.</p>

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

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
  const app = Vue.createApp({
  data() {
    return {
      message: "Hello World!"
    }
  }
  })
  app.mount('#app')
</script>
</body>
</html>
Try it Yourself »

Example 2

Using the JavaScript setTimeout() function to delay the compilation by one second so that the effect from v-cloak becomes more clear.

<!DOCTYPE html>
<html>
<head>
  <title>Vue v-cloak Directive</title>
  <style>
    [v-cloak] {
      opacity: 0.5;
    }
    #app {
      padding: 10px;
      font-size: x-large;
      background-color: lightgreen;
    }
  </style>
</head>
<body>

<h1>Vue v-cloak Example</h1>

<p>Using the JavaScript setTimeout function to delay the Vue compilation to make the pre-compilation phase even more clear.</p>

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

<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script>
setTimeout(() => {
  const app = Vue.createApp({
    data() {
      return {
        message: "Hello World!"
      }
    }
  })
  app.mount('#app')
}, 1000);
</script>
</body>
</html>
Try it Yourself »

Related Pages

JavaScript Reference: Window setTimeout()


Copyright 1999-2023 by Refsnes Data. All Rights Reserved.