简体   繁体   中英

How to avoid having django template display before VueJS render

I have a Django template that I'm trying to render with VueJs using CDN. The problem is when the page is loaded, i see the raw code of Django with the delimiters before it get rendered with VueJS. It takes less that a sec.

I have an API call (using Fetch) that retrieve some data before displaying them and I put that in mounted() function. The delay is almost 0.6sec and we can see Django render before vuejs render the page.

Then I change mounted() to beforeMount() . I now see the Django render from time to time but it's much better because often, vue render comes first.

Is there a better way to solve this? I'm using CDN, and I didn't want to get into server-side rendering for this project.

The directive v-cloak solve it.

<div id="#app">
    <div v-cloak>
       [[ message ]]  // Vue delimiters for django.
    </div>
</div>

with the style

[v-cloak] {
  display: none;
}

Juste make sure to add the directive inside of the main #app div

More to it here Hiding vue.js template before it is rendered

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM