2016-03-23 22 views
49

शायद यह एक मामूली सवाल है।Vuejs - पृष्ठ लोड होने पर vuejs वाक्यविन्यास छुपाएं

इसलिए, जब मैं ब्राउज़र पर अपने vuejs एप्लिकेशन चलाता हूं तो थ्रॉटलिंग डाउनलोड गति (कम कनेक्शन पर सेट) सक्षम करता है। मुझे ब्राउज़र में अधूरा vue वाक्यविन्यास आउटपुट मिला।

Vue js syntax appear in browser

मैं जानता हूँ कि हम पहले पूरे पृष्ठ के लोड होते चित्र लोड करने दिखा के साथ इस बाहर चाल कर सकते हैं, लेकिन यह इसे ठीक करने के लिए किसी भी सबसे अच्छा समाधान है?

उत्तर

81

आप v-cloak निर्देश है, जो Vue उदाहरण छुपा देगा जब तक संकलन खत्म

+0

एपीआई में कहते हैं: '[v-cloak] { डिस्प्ले: कोई नहीं; }

{{ message }}
' इसका मतलब है, मुझे हर तत्व में 'v-cloak' विशेषता' जोड़नी चाहिए जिसे मैं छिपाना चाहता हूं? – antoniputra

+8

बस मुख्य 'ऐप' div के लिए ठीक होना चाहिए – Jeff

+0

@ जेफ आह, मुझे बस इसके बारे में पता है। अच्छी तरह से 'v-cloak' एक अच्छा जवाब लगता है। धन्यवाद @ गुस !! – antoniputra

30

मैं निम्नलिखित codepen संलग्न उपयोग कर सकते हैं। आप v-cloak के साथ और बिना अंतर देख सकते हैं।

<div id="js-app"> 
[regular]Hold it... <span>{{test}}</span><br/> 
[cloak]Hold it... <span v-cloak>{{test}}</span> 
</div> 

http://codepen.io/gurghet/pen/PNLQwy

+1

हाँ मुझे यह मिला ... धन्यवाद, आपका कोडपेन नए comers के लिए मदद करेगा। – antoniputra

+0

आपको अभी भी पहला {{test}} मिलता है जबकि vuejs लोड हो रहा है, इसलिए यह एक सही उत्तर नहीं है – twigg

+7

@twigg यह बात है। पहला वाला नियमित टैग दिखाता है और दूसरा शो 'v-cloak' विशेषता का उपयोग करके क्लोक किए गए टैग को दिखाता है। –

0

आप एक सरल आवरणcomponent के लिए किसी भी प्रतिपादन के लिए कदम हो सकता है। VueJS प्रारंभिकरण उदा। नया व्यू (....) उस एकल रैपर घटक से अलग कोई HTML नहीं होना चाहिए।

सेटअप के आधार पर आप भी जहां एप्लिकेशन किसी भी लोड हो रहा है HTML या पाठ जो बीच में तो लोड पर बदल दिया जाता है साथ आवरण घटक है <app>Loading...</app> हो सकता था।

1

v-cloak का उपयोग करके दूसरों द्वारा सुझाए गए अनुसार उचित समाधान है। हालांकि @ DelightedD0D ने उल्लेख किया है कि यह उलझन में है। सरल समाधान v-cloak निर्देश के छद्म चयनकर्ता ::before में कुछ सीएसएस जोड़ना है।

अपने सास में/

[v-cloak] > * { display:none; } 
[v-cloak]::before { 
    content: " "; 
    display: block; 
    position: absolute; 
    width: 80px; 
    height: 80px; 
    background-image: url(/images/svg/loader.svg); 
    background-size: cover; 
    left: 50%; 
    top: 50%; 
} 

बेशक की तर्ज आप लोडर छवि के लिए एक वैध और सुलभ मार्ग उपलब्ध कराने की आवश्यकता होगी के साथ कम फ़ाइल कुछ। यह कुछ प्रस्तुत करेगा।

enter image description here

आशा है कि यह मदद करता है।

संबंधित मुद्दे